为io.fabric8 Docker Maven Plugin 0.38.0添加--pull参数遇配置错误求助
问题分析与解决方案
错误原因
你遇到的报错是因为全局配置中的<pull>true</pull>属于构建阶段的专属配置,但stop目标的Mojo无法识别该参数。stop目标对应的配置类中没有pull属性,当插件执行stop时会尝试解析全局所有配置,导致找不到对应参数而抛出异常。
解决方法
将build相关的配置(包括pull)从全局configuration节点移到build目标的专属execution配置中,让不同目标加载各自所需的配置,避免冲突。
修改后的完整插件配置
<plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.38.0</version> <inherited>false</inherited> <configuration> <images> <image> <name>rnddockerdev.azurecr.io/ifs/virus-scanner:${project.version}</name> <run> <ports> <port>9080:8080</port> <!--<port>9787:9787</port>--> </ports> </run> </image> </images> </configuration> <executions> <!-- 独立配置stop目标 --> <execution> <id>docker-stop</id> <phase>package</phase> <goals> <goal>stop</goal> </goals> </execution> <!-- 为build目标单独配置pull参数 --> <execution> <id>docker-build</id> <phase>package</phase> <goals> <goal>build</goal> </goals> <configuration> <images> <image> <build> <dockerFile>Dockerfile</dockerFile> <dockerFileDir>${project.basedir}</dockerFileDir> <pull>true</pull> </build> </image> </images> </configuration> </execution> </executions> </plugin>
补充方案(命令行方式)
如果不想修改配置文件,也可以在执行构建时通过命令行参数指定拉取最新镜像:
mvn package -Ddocker.build.pull=true
内容的提问来源于stack exchange,提问作者Chethana Udatiyawalage
相关产品推荐
相关产品推荐

