1

我在 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占位符,latest如果版本包含,则使用标签标记图像-SNAPSHOT,否则使用 pom 版本。从 CI 构建时,我想在我的图像中包含一些额外的标签(可能不止一个)(例如内部版本号/分支名称),但我想保留%l占位符行为。我认为应该可以从命令行使用 maven 属性,但我无法从插件文档(https://dmp.fabric8.io/)中弄清楚

执行 docker:build 目标时如何包含其他标签?

4

1 回答 1

3

您可以使用<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
于 2017-10-30T09:02:29.500 回答