java项目快速打包镜像到docker服务器
环境准备
idea+java-maven项目
可以自己新建一个springboot项目,请自行百度,这里不再举例
Dockerfile
在springboot项目的 项目根目录下放一个Dockerfile文件,
文件内容如下
#基础镜像(这里配置的是从镜像私服拉取jdk8的镜像)
FROM 192.168.11.131:5000/myrepo/openjdk:8-jre
#作者信息
MAINTAINER thinkpet <1131201834@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,表示容器内此路径会映射到宿主机的某个目录
VOLUME /tmp
ARG JAR_FILE
#将maven构建后的jar复制到image里,名字改成了app.jar
ADD target/${JAR_FILE} /app.jar
#暴露端口8913
EXPOSE 8913
#启动容器内app时的执行命令
ENTRYPOINT ["java","-Xmx128m","-Xms128m","-jar","/app.jar"]
dockerfile-maven-plugin
dockerfile-maven-plugin是
spotify公司开源的maven项目打包docker镜像的插件
使用该插件需要你的本机(开发机)
配置一个DOCKER_HOST环境变量 来指定docker服务器tcp访问地址,
如果你本机已经安装了dockerDesktop,就不需要配置这个环境变量
配置案例
在你的springboot项目的根pom文件里的build节点下 plugins节点内 添加如下配置
xml
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.5</version>
<!-- 配置当执行maven package时执行build镜像 -->
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 最终生成的镜像标签是 repository:tag
如 192.168.11.131:5000/myrepo/cs-docker-demo:1.2.7
-->
<repository>192.168.11.131:5000/myrepo/${project.artifactId}</repository>
<tag>${project.version}</tag>
<!-- jar包名称取maven package默认生成的jar名,
如 cs-docker-demo-1.2.7.jar
-->
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>