springboot 2.2.1稳定版
jdk 1.8
maven 3.6.2
docker-maven-plugin 0.4.13
# 指定jdk环境版本,基于java8创建镜像
FROM java:8
# 挂载临时目录
VOLUME /tmp
# 添加指定jar包到容器《此处为项目打包产生的jar包全名》
ADD your-package.jar app.jar
# 容器向外暴露的端口号《指该项目运行所占用的的端口号》
EXPOSE 80
# 容器运行程序的命令
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
本文使用docker-maven-plugin 0.4.13版本,可根据自己需求选择任意版本使用。
在标签中添加以下配置:
<!--使用docker-maven-plugin插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<!--将插件绑定在某个phase执行 -->
<executions>
<execution>
<id>build-image</id>
<!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build -->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<forceTags>true</forceTags>
<!--指定生成的镜像名 该处修改为自己想要生成的镜像名称-->
<imageName>myImages</imageName>
<!--指定标签 -->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定 Dockerfile 路径 -->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!--指定远程 docker api地址 -->
<dockerHost>https://localhost:2375</dockerHost>
<!--指定pem证书文件路径地址 -->
<dockerCertPath>${project.basedir}/src/main/pem</dockerCertPath>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录 -->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
选中项目右键 Run As > Maven install 即可,打包成功时出现以下内容:
如需docker远程连接工具请移步:Docker Client v1.2.1,该程序可以免登录服务器进行docker操作。