使用maven 构建 Docker镜像

 

建议: 最好了解docker , 会基本操作,在看这篇文章

Spotify公司开源了一款docker的Maven插件:

旧版:  docker-maven-plugin 

新版: dockerfile-maven-plugin

这边我们使用新版,旧版本存在很多问题【动不动就找不到Dockerfile文件,修改版本每次都得替换jar变量@finalName@】

旧版: 折腾我半天了,一会好使一会不好使 

 

1、开通docker的远程API,端口2375

docker安装就不说了,属于基础,自己找

我的docker版本

Client: Docker Engine - Community
Version: 19.03.12

Server: Docker Engine - Community
 Engine:
  Version:          19.03.12

我的系统是centos 7的

vi    /lib/systemd/system/docker.service

在ExecStart下,增加 -H tcp://0.0.0.0:2375

 

 

 保存,然后输入以下命令,重新加载配置和重启

systemctl daemon-reload 
systemctl restart docker

 

注意:改完以后docker images  或者 docker ps 看看是否正常,要是卡住没反应那肯定是有问题了。

 

2、配置docker_host环境变量

 

 

 

 注意:IDE工具如果早于 环境变量配置  前打开了

           最好在配置环境变量后,将IDE关闭重新打开。

           不然maven_docker连接地址还是本地的127.0.0.1:2375

 

3、配置pom.xml文件

<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.9</version>

<configuration>
<!--使用maven, gorupId,artifactId,和tag用版本 -->
<repository>${project.groupId}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>

 

4、配置Dockerfile文件

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

5、 打包

使用 maven 中 package 重新生成jar文件

然后使用 maven 下的 Plugins ---dockerfile 中的build

 

 

 

 

6、 在docker镜像中可以看到

 

posted @ 2020-09-07 17:52  兔兔福  阅读(2572)  评论(0编辑  收藏  举报