fabric8 docker-maven-plugin: включить дополнительные теги при сборке
Я настроил подключаемый модуль docker-maven-plugin fabric8 в моем файле pom.xml следующим образом:
<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 target?
1 ответ
Вы можете использовать <tags>
тег:
<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