Maven 项目自动构建 Docker 镜像推送到 Docker 服务器

Docker 配置

修改 Docker 配置

#vi /usr/lib/systemd/system/docker.service

将 ExecStart 这一行后面修改为 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 注意这里就是 0.0.0.0 不要修改

在这里插入图片描述

# 重新加载配置文件
# systemctl daemon-reload
# 重启 Docker 
# systemctl restart docker 

查看 Docker 是否在监听 2375 端口

netstat -anp|grep 2375
curl 127.0.0.1:2375/info

在这里插入图片描述

Maven 配置

在 pom 文件中添加插件

<plugin>
     <groupId>com.spotify</groupId>
     <artifactId>docker-maven-plugin</artifactId>
     <version>0.4.13</version>
     <configuration>
         <imageName>myproject/test:0.0.1</imageName>
         <baseImage>java</baseImage>
         <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
         <resources>
             <resource>
                 <targetPath>/</targetPath>
                 <directory>${project.build.directory}</directory>
                 <include>${project.build.finalName}.jar</include>
             </resource>
         </resources>
         <dockerHost>http://你的Doker IP :2375</dockerHost>
     </configuration>
 </plugin>

简要说明一下插件的配置:
① imageName:用于指定镜像名称,其中itmuch是仓库名称,microservice-discovery-eureka是镜像名称,0.0.1是标签名称。
② baseImage:用于指定基础镜像,类似于Dockerfile中的FROM指令。
③ entrypoint:类似于Dockerfile的ENTRYPOINT指令。
④ resources.resource.directory:用于指定需要复制的根目录,${project.build.directory}表示target目录。

⑤ resources.resource.include:用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。
dockerHost 指定你的 Docker 服务器监听的端口

运行命令打包

mvn clean package docker:build

在这里插入图片描述
在这里插入图片描述
可以看到 Docker 镜像已经被推送上服务器了

发布了12 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/brucelpt/article/details/103889991
今日推荐