fabric8 docker-maven-plugin: 在构建时包含额外的标签
fabric8 docker-maven-plugin: include additional tags on build
我在 pom.xml 中配置了 fabric8 docker-maven-plugin,如下所示:
<build>
...
<plugins>
...
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<images>
<image>
<name>${docker.image.prefix}/${project.artifactId}:%l</name>
<build>
<dockerFile>Dockerfile</dockerFile>
<assembly>
<descriptorRef>artifact</descriptorRef>
</assembly>
</build>
</image>
</images>
</configuration>
</plugin>
...
</plugins>
...
</build>
我正在使用 %l
占位符,如果版本包含 -SNAPSHOT
,则使用 latest
标签标记图像,否则它使用 pom 版本。
从 CI 构建时,我想在我的图像中包含一些额外的标签(可能不止一个)(例如构建号/分支名称),但我想保留 %l
占位符行为。
我认为应该可以从命令行使用 Maven 属性,但我无法从插件文档中弄清楚 (https://dmp.fabric8.io/)
如何在执行 docker:build 目标时包含额外的标签?
您可以使用 <tags>
标签:
https://dmp.fabric8.io/#build-configuration
<properties>
...
<!-- set default -->
<docker.image-tag>${project.version}</docker.image-tag>
...
</properties>
<image>
...
<name>repo/something/%a:%l</name>
<build>
...
<tags>
<tag>${docker.image-tag}</tag>
</tags>
...
</build>
...
</image>
这将使用 %l
行为和自定义集 ${docker.image-tag}
标记您的图像。
mvn docker:build -Ddocker.image-tag=mytag
我在 pom.xml 中配置了 fabric8 docker-maven-plugin,如下所示:
<build>
...
<plugins>
...
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<images>
<image>
<name>${docker.image.prefix}/${project.artifactId}:%l</name>
<build>
<dockerFile>Dockerfile</dockerFile>
<assembly>
<descriptorRef>artifact</descriptorRef>
</assembly>
</build>
</image>
</images>
</configuration>
</plugin>
...
</plugins>
...
</build>
我正在使用 %l
占位符,如果版本包含 -SNAPSHOT
,则使用 latest
标签标记图像,否则它使用 pom 版本。
从 CI 构建时,我想在我的图像中包含一些额外的标签(可能不止一个)(例如构建号/分支名称),但我想保留 %l
占位符行为。
我认为应该可以从命令行使用 Maven 属性,但我无法从插件文档中弄清楚 (https://dmp.fabric8.io/)
如何在执行 docker:build 目标时包含额外的标签?
您可以使用 <tags>
标签:
https://dmp.fabric8.io/#build-configuration
<properties>
...
<!-- set default -->
<docker.image-tag>${project.version}</docker.image-tag>
...
</properties>
<image>
...
<name>repo/something/%a:%l</name>
<build>
...
<tags>
<tag>${docker.image-tag}</tag>
</tags>
...
</build>
...
</image>
这将使用 %l
行为和自定义集 ${docker.image-tag}
标记您的图像。
mvn docker:build -Ddocker.image-tag=mytag