Maven Spring 引导无法推送 Docker 图像
Maven Spring Boot Cannot Push Docker Image
使用 Spring Boot 2.4.0,我正在尝试配置 spring-boot:build-image
任务以将映像推送到我的私有 GitHub 容器注册表。
我使用 these instructions 配置我的 POM 如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<name>ghcr.io/abc/${project.artifactId}:${project.version}</name>
<publish>true</publish>
</image>
<docker>
<publishRegistry>
<username>abc</username>
<token>mytoken</token>
<url>https://ghcr.io</url>
</publishRegistry>
</docker>
</configuration>
</plugin>
当我执行 spring-boot:build-image
任务时,它会构建映像,但在尝试推送时出现以下错误:
[INFO] Successfully built image 'ghcr.io/abc/def:1.5.0'
[INFO]
[INFO] > Pushing image 'ghcr.io/abc/def:1.5.0' 100%
Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0:build-image failed: Error response received when pushing image: error parsing HTTP 405 response body: unexpected end of JSON input: "" -> [Help 1]
我可以使用 docker push
手动推送图像,我尝试过 docker login
也没有帮助。我也不在任何防火墙或代理后面。
万一其他人发现这个问题,问题最终是 maven 插件配置中的拼写错误。我使用的是 <token>
而不是 <password>
。以下是有效的正确 XML:
<docker>
<publishRegistry>
<username>abc</username>
<password>mytoken</password>
<url>https://ghcr.io</url>
</publishRegistry>
</docker>
使用 Spring Boot 2.4.0,我正在尝试配置 spring-boot:build-image
任务以将映像推送到我的私有 GitHub 容器注册表。
我使用 these instructions 配置我的 POM 如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<name>ghcr.io/abc/${project.artifactId}:${project.version}</name>
<publish>true</publish>
</image>
<docker>
<publishRegistry>
<username>abc</username>
<token>mytoken</token>
<url>https://ghcr.io</url>
</publishRegistry>
</docker>
</configuration>
</plugin>
当我执行 spring-boot:build-image
任务时,它会构建映像,但在尝试推送时出现以下错误:
[INFO] Successfully built image 'ghcr.io/abc/def:1.5.0'
[INFO]
[INFO] > Pushing image 'ghcr.io/abc/def:1.5.0' 100%
Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0:build-image failed: Error response received when pushing image: error parsing HTTP 405 response body: unexpected end of JSON input: "" -> [Help 1]
我可以使用 docker push
手动推送图像,我尝试过 docker login
也没有帮助。我也不在任何防火墙或代理后面。
万一其他人发现这个问题,问题最终是 maven 插件配置中的拼写错误。我使用的是 <token>
而不是 <password>
。以下是有效的正确 XML:
<docker>
<publishRegistry>
<username>abc</username>
<password>mytoken</password>
<url>https://ghcr.io</url>
</publishRegistry>
</docker>