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>