我们正在使用 io.fabric8:docker-maven-plugin:0.27.2
来构建我们的 docker 镜像。
只是想知道如何将rm
传递到构建选项中?我想在成功构建后清除所有中间(<无>)图像 - 使用 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>
任何帮助将不胜感激!
如文档中所述,有一个枚举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>