我们正在使用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>
非常感谢您的帮助!
答案 0 :(得分:0)
如文档中所述,有一个枚举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>