使用dockerfile-maven-plugin动态构建镜像并上传到docker私有仓库
最近在将应用部署到容器平台,需要在打包时生成docker镜像,在网上首先搜到了docker-maven-plugin这个插件,但使用起来很麻烦,在maven和dockfile都要做很多额外的配置。后来在官方Github看到作者推荐使用dockerfile-maven-plugin这个新的插件,于是替换成这个,但这个插件在网上的相关资料较少。
pom配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!-- Dockerfile maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<executions>
<execution>
<id>default</id>
<phase>package</phase>
<goals>
<!--<!–如果package时不想用docker打包,就注释掉这个goal–>-->
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<username>username</username> <!-- docker私有仓库用户名,已登录则不需要 -->
<password>password</password> <!-- docker私有仓库密码,已登录则不需要 -->
<dockerHost>http://10.118.176.103:2375</dockerHost> <!-- 调用远程docker执行,也可以使用挂载宿主机docker方式 -->
<repository>10.118.76.171:4000/jenkins/{project.build.finalName}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.war</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
dockerfile
FROM 10.118.76.171:4000/library/tomcat:app RUN rm -rf /usr/local/tomcat/webapps/* COPY {JAR-FILE} /usr/local/tomcat/webapps/ROOT.war EXPOSE 8080 CMD ["catalina.sh","run"]

浙公网安备 33010602011771号