Плагин Fabric8 Maven - как передать --rm в параметры сборки?

Мы используем io.fabric8:docker-maven-plugin:0.27.2 для создания наших образов докеров.

Просто интересно, как передать rm в параметры сборки? Я хочу удалить все промежуточные (‹none›) изображения после их успешного построения - с помощью команды mvn docker:build

REPOSITORY            TAG       IMAGE ID         CREATED             SIZE
myproject/baseimage   latest    baa18e544738     3 days ago          1.53GB
<none>                <none>    c98ecb5bc381     3 days ago          784MB
<none>                <none>    14d3f81c4bc0     4 days ago          533MB
<none>                <none>    9b07174fc67a     4 days ago          532MB

Я пробовал пройти что-то подобное.

<buildoptions>
   <rm>true</rm>
</buildoptions>

эквивалент:

docker build --rm -f Dockerfile -t myproject/baseImage:latest .

Документация не очень понятна -> http://dmp.fabric8.io/#build-configuration < / а>

Полная конфигурация pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.27.2</version>
            <extensions>true</extensions>
            <configuration>
                <verbose>true</verbose>
                <images>
                    <image>
                        <name>myproject/baseimage</name>
                        <build>
                            <tags>
                                <tag>latest</tag>
                            </tags>
                            <dockerFile>${project.basedir}/Dockerfile</dockerFile>
                            <buildOptions>
                                <rm>true</rm>
                            </buildOptions>
                        </build>
                    </image>
                </images>
            </configuration>
            <executions>
                <execution>
                    <id>docker:build</id>
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Я пробовал кучу вещей, включая передачу той же переменной в свойствах maven. Но ничего не вышло.

<docker.buildoptions.rm>true</docker.buildoptions.rm>

Любая помощь приветствуется!


person Dinesh    schedule 24.12.2018    source источник


Ответы (1)


Как упоминалось в документации, существует перечисление cleanup, которое удаляет оборванные (немаркированные) изображения после каждой сборки (включая любые контейнеры, созданные из них). Он может быть установлен на true, false и try, который пытается удалить старое изображение, но не завершает сборку, если это невозможно, потому что, например, изображение все еще используется работающим контейнером. Вы можете установить его в конфигурации сборки, например:

<build>
   <from>${image}</from>
   <labels>
      <dmp.version>${project.version}</dmp.version>
      <dmp.name>${project.artifactId}</dmp.name>
   </labels>
   <assembly>
      <descriptor>assembly.xml</descriptor>
   </assembly>

   ...

   <cleanup>true</cleanup>  
</build>
person Rohan Kumar    schedule 24.12.2018
comment
хм ... cleanup не работает. Он по-прежнему оставляет все изображения ‹none›. Мой - это многомодульный проект maven - каждый создает свой собственный образ. Не уверен, что это вызывает какие-либо проблемы. - person Dinesh; 27.12.2018
comment
ах, что произойдет, если вы сделаете это для одного модуля индивидуально? Не могли бы вы поделиться своим проектом, если возможно? - person Rohan Kumar; 27.12.2018
comment
Привет, @Rohan, хорошо, я попробую. Я разместил еще один вопрос, связанный с плагином fabricio8 - ›stackoverflow.com/questions/53909282/. Где я попытался описать полную структуру моего проекта. Вы можете взглянуть на это? Надеюсь, это даст вам представление о моем проекте. К сожалению, я не могу опубликовать фактический исходный код, поскольку он не является открытым. - person Dinesh; 27.12.2018