Maven+Docker 部署

安装jdk8镜像

docker pull openjdk:8-jdk-alpine

maven插件推送方式

  1. 修改/etc/docker/daemon.json文件,加入hosts配置即可。 注意 使用本地docker构建,不要用的生产服务器上,这种方式容易被别人注入木马

    本地局域网 192.168.10.222
{

  "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]

}
  1. 在settings.xml文件的同级目录创建settings-security.xml文件

    在cmd命令行中使用,在bash中特殊字符会出现转义问题
mvn --encrypt-master-password <password>
{4Cmy61mOMasHCreAdBngs40S7FJ8dFcD8MG9jCJKSNA=}
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
<master>{4Cmy61mOMasHCreAdBngs40S7FJ8dFcD8MG9jCJKSNA=}</master>
</settingsSecurity>
  1. 编辑settings.xml

    最后使用你的私有仓库访问密码生成服务密码,将生成的密码写入到settings.xml的
mvn --encrypt-password <password>
{RCeI2AmEXXgHmFttKbzhhXBLq/vQdczAluUl3Vd7tsg=}
<server>
<id>docker-aliyun</id>
<username>matosiki@163.com</username>
<password>{RCeI2AmEXXgHmFttKbzhhXBLq/vQdczAluUl3Vd7tsg=}</password>
<configuration>
<email>matosiki@163.com</email>
</configuration>
</server>


2. 重新加载配置文件,并重启docker

> systemctl daemon-reload

> systemctl restart docker

3. 验证,直接访问:

> curl 127.0.0.1:2375/info

## java项目

1. maven pom.xm 配置文件

​```xml
<build> <plugins> <!-- springboot打包 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.9</version> <configuration> <!-- 镜像名称 --> <imageName>matosiki/springboot-docker-demo</imageName> <!-- docker远程服务器地址 --> <dockerHost>http://服务器IP:2375</dockerHost> <!-- Dockerfile文件存放目录 --> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
  1. 编写Dockerfile 文件
# Dockerfile

# 基于的镜像

FROM openjdk:8-jdk-alpine

# 安装字体,Captcha需要字体支持
RUN set -xe && apk --no-cache add ttf-dejavu fontconfig VOLUME /opt/tmp ADD projectname-1.0.0-SNAPSHOT.jar app.jar # -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题 # 具体可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 对外端口 EXPOSE 8080
  1. 编码运行

mvn clean package docker:build -Dmaven.test.skip=true

  1. 查看镜像

docker images

  1. 运行镜像,查看是否启动正常

docker run -d -p 8080:8080 matosiki/springboot-docker-demo

  1. 基于已有镜像运行 jar
docker run -d -p 1234:8080 -v /opt/docker/projectname-1.0.0-SNAPSHOT.jar:/usr/projectname-1.0.0-SNAPSHOT.jar --name SpringbootByJar openjdk:8-jdk-alpine java -jar /usr/projectname-1.0.0-SNAPSHOT.jar

Maven+Docker 部署的更多相关文章

  1. Maven Docker部署

    镜像构建方式 docker-maven-plugin插件构建docker镜像有两种方式: 1. 指定参数,由docker-maven-plugin插件根据这些参数来制作镜像: 2. 指定Dockerf ...

  2. Docker化tomcat 并且使用maven热部署

    今天没事干 就把自己的tomcat  docker化并且使用maven实现热部署 特别记录一下~ 1.首先进行centos7的安装 就不在记录了 注意的是最好使用centos7 因为docker 依赖 ...

  3. 转 使用Docker部署 spring-boot maven应用

    转自:https://blog.csdn.net/u011699931/article/details/70226504/ 使用Docker部署 spring-boot maven应用 部署过程分为以 ...

  4. Jenkins+Docker部署Maven聚合工程

    这几天,把公司的预发布环境,改成docker部署,遇到了一些坑,有jenkins里的部署脚本的问题,也有harbor仓库的问题,还有docker远程访问的问题,还有DooD....一堆坑 Jenkin ...

  5. Spring Boot 2.0(四):使用 Docker 部署 Spring Boot

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目, ...

  6. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

  7. Spring Boot2.0:使用Docker部署Spring Boot

    一.Spring Boot项目添加 Docker 支持1.在pom.xml中添加 Docker 构建插件 <plugins> <!-- Docker maven plugin --& ...

  8. (转)Spring Boot 2 (四):使用 Docker 部署 Spring Boot

    http://www.ityouknow.com/springboot/2018/03/19/spring-boot-docker.html Docker 技术发展为微服务落地提供了更加便利的环境,使 ...

  9. 使用docker部署springboot

    首先创建一个简单的springboot web项目 创建一个 DockerController,在其中有一个index()方法,访问时返回:Hello Docker! @RestController ...

随机推荐

  1. C++:盾神与条状项链

    实现代码如下: #include<cstdlib> #include <string> #include <iostream> using namespace st ...

  2. 小程序文案过长,‘收起/展开’文字,createSelectorQuery 获取节点成功,boundingClientRect 返回信息null

    问题描述: wxml中id是动态生成的. 获取节点信息是在onReady生命周期函数内延时500ms执行的,select(id)可以获取全部节点信息,boundingClientRect (rect) ...

  3. C语言之反汇编揭秘

    title: 'C语言之反汇编揭秘' tags: 汇编与反汇编 categories: 汇编与反汇编 copyright: true abbrlink: 'b1c9' date: 2019-09-07 ...

  4. 2019牛客多校一 H. XOR (线性基)

    大意: 给定序列, 求所有异或和为$0$的子序列大小之和. 先求出线性基, 假设大小为$r$. 对于一个数$x$, 假设它不在线性基内, 那么贡献为$2^{n-r-1}$ 因为它与其余不在线性基内数的 ...

  5. (四)spring+servlet 整合

    一.Spring与Servlet的整合 1.1: 加入Spring的jar包.(要加web.jar包) 1.2: java工程中获取Spring的上下文对象. ApplicationContext c ...

  6. (四)Redis之哈希

    一.哈希常用命令 赋值 取值 删除 增加数字 判断字段是否存在 获取hash属性个数 获取hash所有属性名称 1.2.3 赋值取值和删除 package myRedis01; import java ...

  7. (九)SpringBoot之使用jsp

    一.概念 jsp应该尽量避免使用,原因如下: jsp只能打包为:war格式,不支持jar格式,只能在标准的容器里面跑(tomcat,jetty都可以) 内嵌的Jetty目前不支持JSPs Undert ...

  8. .NET Core中使用读取配置文件

    引入Nuget的两个类库 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Json 使用 var build ...

  9. 编译 recastnavigation

      1. https://github.com/memononen/recastnavigation 下载zip并解压 2. 打开https://www.libsdl.org/download-2.0 ...

  10. 关于微信小程序获取多个formId的实现方法

    在此之前,很多人使用过form和button的多层嵌套来实现点击一次获取多个formId的目的,如下图所示,点击一次“提交”,可以获取到多个formId 但是在今年3月份,这个投机取巧的方法(算是微信 ...