最近在將應用部署到容器平台,需要在打包時生成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"]
