Java 未能执行目标com.spotify:dockerfile maven插件:1.3.6:基于项目的构建';foo';:无法生成映像:
我们在一个4人的小组里工作。我们使用docker部署我们的服务。其中一个服务是JavaSpring引导项目,它是在使用maven构建docker映像之后部署的。为了制作Spring Boot服务的docker映像,我们使用Java 未能执行目标com.spotify:dockerfile maven插件:1.3.6:基于项目的构建';foo';:无法生成映像:,java,maven,docker,spring-boot,Java,Maven,Docker,Spring Boot,我们在一个4人的小组里工作。我们使用docker部署我们的服务。其中一个服务是JavaSpring引导项目,它是在使用maven构建docker映像之后部署的。为了制作Spring Boot服务的docker映像,我们使用mvn clean package dockerfile:build 有趣的是,我的同事在建立SpringBoot服务的docker形象方面没有问题。我得到了maven的错误信息: [ERROR] Failed to execute goal com.spotify:docke
mvn clean package dockerfile:build
有趣的是,我的同事在建立SpringBoot服务的docker形象方面没有问题。我得到了maven的错误信息:
[ERROR] Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.6:build (default-cli) on project 'foo': Could not build image: com.spotify.docker.client.shaded.com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.spotify.docker.client.messages.RegistryAuth: no String-argument constructor/factory method to deserialize from String value ('osxkeychain')
[ERROR] Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.6:build (default) on project spring-boot-service: Could not build image: com.spotify.docker.client.shaded.com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.spotify.docker.client.messages.RegistryAuth: no String-argument constructor/factory method to deserialize from String value ('swarm')
[ERROR] at [Source: N/A; line: -1, column: -1] (through reference chain: java.util.LinkedHashMap["stackOrchestrator"])
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
我试图从.m2/repository
中删除所有maven存储库,重新启动docker并删除所有图像
后来我尝试在两个单独的命令中运行mvn clean package dockerfile:build
:
,然后mvn包
mvn docker:build
mvn包
已通过,并且mvn docker:build
失败,错误与上述相同
Maven版本3.5.4
,
Docker版本18.06.1-ce,版本e68fc7a
,
OS:macOS mojave
我甚至试着重新启动我的电脑,希望它能修复它
编辑:
以下是maven pom插件dockerfile maven插件
...
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<repository>${project.artifactId}</repository>
</configuration>
</plugin>
...
编辑3:
docker-compose.yml
wrapper:
image: spring-boot-service:latest
ports:
- "8080:8080"
expose:
- "8080"
links:
- db
- another-service
已解决:
在我的例子中,这是错误版本的DockerfileMaven插件
。我使用了1.3.6
,并且1.4.7
修复了这个问题
谢谢你
更新:还有一件事
确保mvn
finishbuild命名正确,例如:
[INFO] Successfully built **spring-boot-service:0.0.1-SNAPSHOT**
和docker compose.yml
应如下所示:
...
wrapper:
image: **spring-boot-service:0.0.1-SNAPSHOT**
...
以下是配置:
com.spotify
这将配置插件,以通过以下方式构建和推送图像:
$mvn清洁部署
如果只想构建Docker映像,请运行:
$mvn清洁包
你能分享POM文件的dockerfile maven plugin
部分吗?更新了问题:)对不起,这不是dockerfile,而是一个Compose文件。更新了问题。错误保持不变。第二行错误是:[error]位于[源代码:N/A;行:-1,列:-1](通过引用链:java.util.LinkedHashMap[“stackOrchestrator”])
。也许是docker配置。。。但是我没有更改docker配置。您可以共享Dockerfile
?如果将dockerfile maven插件的版本更新为?wrapper:image:spring引导服务:最新端口:-“8080:8080”expose:-“8080”,行为是否也会改变链接:-db-另一个服务
编辑了这个问题,我将尝试更改dockerfile maven插件的版本
version。我能够mvn清理包
。现在我可以docker撰写。谢谢!:)是否可以将评论标记为答案?