Fabric8 Maven插件-如何将--rm传递给构建选项?

时间:2018-12-24 05:18:21

标签: fabric8 fabric8-maven-plugin

我们正在使用io.fabric8:docker-maven-plugin:0.27.2构建我们的docker映像。

只是想知道如何将rm传递给buildoptions?我想在成功构建所有中间()图像后清除它们-使用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>

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如文档中所述,有一个枚举cleanup,该枚举在每次构建后都删除了悬空(未标记)的图像(包括从中创建的任何容器)。可以将其设置为truefalsetry,以尝试删除旧图像,但如果无法进行构建,则不会失败,因为例如该图像仍被运行中的容器使用。您可以在构建配置中进行设置,例如:

<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>