我正在尝试将maven dockerfile插件与我的项目集成。我的maven项目下有多个模块。我为要构建并标记图像的模块修改了 pom.xml ,如下所示。运行mvn dockerfile:build
命令将在目标文件夹下创建一个docker-info.jar
。我不确定要在哪里构建映像,并且在尝试运行mvn dockerfile:tag
命令时会看到以下错误。
无法执行目标com.spotify:dockerfile-maven-plugin:1.4.4:tag (drs-web上的(default-cli):目标的参数“存储库” com.spotify:dockerfile-maven-plugin:1.4.4:tag丢失或无效
Pom.xml:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<executions>
<execution>
<id>build</id>
<goals>
<goal>build</goal>
</goals>
<configuration>
<buildArgs>
<WAR_FILE>${project.build.finalName}.war</WAR_FILE>
</buildArgs>
</configuration>
</execution>
<execution>
<id>tag</id>
<goals>
<goal>tag</goal>
</goals>
<configuration>
<repository>XXX/XXX-api</repository>
<tag>${project.version}</tag>
</configuration>
</execution>
</executions>
</plugin>
Dockerfile:
FROM tomcat:9.0.10-jre8-slim
ENV CATALINA_HOME /usr/local/tomcat
MAINTAINER XXX
EXPOSE 8080
ADD target/${WAR_FILE} ${CATALINA_HOME}/webapps/XXX-api.war
答案 0 :(得分:1)
要解决该错误,您应该在pom.xml的两部分中使用相同的参数。您没有为构建目标定义存储库名称:
<configuration>
<repository>XXX/XXX-api</repository>
</configuration>
在您的目标目录中创建 docker-info.jar 的事实很可能意味着docker镜像的创建成功完成。
该映像应以名称“ XXX / XXX-api”放置在您的Docker注册表中,您可以使用以下命令从控制台进行检查:
docker image ls
P.S。通过在dockerfile-maven-plugin的配置部分添加以下参数,可以避免生成 docker-info.jar :
<configuration>
<skipDockerInfo>true</skipDockerInfo>
</configuration>