Java 未能执行目标com.spotify:dockerfile maven插件:1.3.6:基于项目的构建';foo';:无法生成映像:

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

我们在一个4人的小组里工作。我们使用docker部署我们的服务。其中一个服务是JavaSpring引导项目,它是在使用maven构建docker映像之后部署的。为了制作Spring Boot服务的docker映像,我们使用
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撰写
。谢谢!:)是否可以将评论标记为答案?