天天看點

docker在每次新的建構上覆寫鏡像tags

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>
           

繼續閱讀