我们在4人的小团队中工作。我们使用docker来部署我们的服务。其中一个服务是java Spring Boot项目,它是在使用maven构建docker映像后部署的。要制作Spring Boot服务的docker映像,我们使用mvn清洁包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')
我试图从中删除所有maven存储库。m2/存储库
,重新启动docker并删除所有图像。
后来我尝试在两个单独的命令中运行mvn clean package dockerfile:build
:
mvn包
,然后mvn docker: build
mvn包
已通过,并且mvn docker:build
失败,错误与上述相同。
Maven版本3.5.4
,Docker版本18.06.1-ce,版本e68fc7a
,操作系统:macOS mojave
我甚至试着重新启动我的电脑,希望它能修复它。。。
编辑:这里是maven pom插件dockerfile-maven-plugin
...
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<repository>${project.artifactId}</repository>
</configuration>
</plugin>
...
编辑2:
完整错误消息:
[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
编辑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**
...
以下是dockerfile maven插件配置:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-maven-plugin.version}</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${project.artifactId}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
注意:使用最新发布的版本1.4.7
这将配置插件来构建和推送您的图像,只需一个命令:
$ mvn clean deploy
如果只想构建Docker映像,请运行:
$ mvn clean package
org.gradle.api.ProjectConfigurationException:配置项目“:App”时出现问题。在
我是Android Studio的新手。我试图建立项目在Android Studio(使项目)和它显示我: 未能完成梯度执行。 原因:无法启动守护进程。此问题可能是由守护程序的不正确配置引起的。例如,使用无法识别的jvm选项。请参阅http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html守护进程的用户指南章节。请阅读以下进程输出以了解更多信
将文件选取器^1.13.3添加到“我的依赖项”后,项目无法生成此错误 失败:构建失败,但有例外。 错误:任务执行失败:app:mergeDebugJavaResource 执行com.android.build.gradle.internal.tasks.时发生故障$ActionFacade文件'com.android.builder.files.ZipCentralDirectory@7dfb7
问题内容: 我正在遵循创建Maven插件的教程,并且无法运行mvn install而不会出现错误。该信息抱怨说,当注释应为我生成它们时,我没有所需的mojo描述符。我正在运行Maven 3.0.5,并使用intellij作为我的想法。这是我的主班: 这是我的pom.xml 注意: 我必须单独添加注释依赖项,因为主插件api不包含这些类。当我在项目上运行mvn install时,输出如下: 问题答案
[错误]生成无法读取1个项目->[帮助1][错误] [错误]项目com.example.angularjs:demo:0.0.1-快照(C:\users\vvk\download\demo\POM.xml)有1个错误[错误] com.example.angularjs:demo:0.0.1-快照:无法解析的父POM:无法传输项目org.springframework.boot:spring-boo
我创建了一个maven项目,其中包含测试用例及其相应的功能。验证检查的所有功能都放在src/main/java下。测试用例也是src/test/java的一部分。我已经把log4j放在下面了。src/main/resources中的属性。 此外,在每个类文件中,我添加了以下行以及以下导入: 日志的初始化: 并且使用创建日志。 还有,在pom中。xml,添加了以下依赖项: 但是我看到日志没有在控制台