使用docker-maven-plugin插件生成docker镜像
docker-maven-plugin插件官网地址:https://github.com/spotify/docker-maven-plugin
1、准备一台Linux服务,并安装docker。参考:
当前用于测试的docker版本为20.10.12
2、开启Docker的远程访问端口2375(注意将这个端口添加到防火墙白名单中)
修改文件/usr/lib/systemd/system/docker.service,在[Service]->>ExecStart位置添加配置-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
vi /usr/lib/systemd/system/docker.service -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
执行如下命令重启docker服务
systemctl daemon-reload #重新加载配置
systemctl restart docker #重启docker服务
3、在maven项目中添加插件
<plugin> <groupId>com.spotifygroupId> <artifactId>docker-maven-pluginartifactId> <version>1.2.2version> <configuration> <baseImage>openjdk:8-jdk-alpinebaseImage> <maintainer>zhi.leaf@foxmail.commaintainer> <resources> <resource> <targetPath>/targetPath> <directory>${project.build.directory}directory> <include>${project.build.finalName}.jarinclude> resource> resources> <workdir>/workdir> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]entryPoint> <dockerHost>http://192.168.159.130:2375dockerHost> <forceTags>trueforceTags> <imageName>zyz/${project.artifactId}imageName> <imageTags> <imageTag>${project.version}imageTag> imageTags> configuration> plugin>
参数说明:
baseImage:基础镜像
forceTags:覆盖原来的镜像
dockerHost:docker远程服务主机
4、运行mvn docker:build构建docker镜像
如果出现提示,说明镜像构建成功
登录Linux服务,可以查看到刚才构建的镜像。
6、将构建命令绑定到maven的生命周期中,这样我们就可以在maven打包的时候就可以构建镜像了
<plugin> <groupId>com.spotifygroupId> <artifactId>docker-maven-pluginartifactId> <version>1.2.2version> <executions> <execution> <id>build-imageid> <phase>packagephase> <goals> <goal>buildgoal> goals> execution> executions> <configuration> ... configuration> plugin>