docker在每次新的构建上覆盖镜像tags
如果你想强制docker在每次新的构建上覆盖镜像tags,可配置foreceTags,命令需要使用
mvn clean package docker:build -DpushImageTag
比较完成的配置说明:
<build>
<finalName>user-service</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.mooc.house.user.UserServiceApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
<!-- docker的maven插件,官网 https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<forceTags>true</forceTags>
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<imageName>192.168.2.10:5000/${project.artifactId}</imageName>
<!--<imageName>192.168.2.10:5000/${project.artifactId}:${project.version}</imageName>-->
<baseImage>jdk1.8</baseImage>
<entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.2.10:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
说明:
1)按照上面的配置之后,可以使用如下命令生成一个镜像
mvn clean package docker:build
2)将生成的镜像推送到镜像注册中心,通过pushImage标签
mvn clean package docker:build -DpushImage
3)如果推送指定tags 的镜像,可使用pushImageTag标签
mvn clean package docker:build -DpushImageTag
4)为了是的上述的命令执行成功,需要在pom中配置imageTag,可以配置多个imageTag
<build>
<plugins>
...
<plugin>
<configuration>
...
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
</configuration>
</plugin>
...
</plugins>
</build>
5)如果你想强制docker在每次新的构建上覆盖镜像tags,可配置foreceTags
<build>
<plugins>
...
<plugin>
<configuration>
...
<!-- optionally overwrite tags every time image is built with docker:build -->
<forceTags>true</forceTags>
<imageTags>
...
</imageTags>
</configuration>
</plugin>
...
</plugins>
</build>