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>