如何解决Spring Boot Maven 插件 > 2.4.x 构建镜像发布到 gitlab 注册表
我目前正在开发一个 GitLab CI/CD 管道,用于编译、测试和构建标准的 Spring Boot 应用程序。 我想将它打包到一个 docker 镜像中,然后将其发布到 GitLab 注册表以供以后使用。 Spring Boot 最近在其 maven 插件中添加了 build-image 目标,该插件还能够将图像发布到注册表。 我的问题是,我无法让授权工作。 我正在使用 maven:3.6.3-jdk-11-slim 图像通过 docker:dind 服务来访问 docker 守护进程。 构建映像运行良好,但发布失败。 我在项目 pom 中配置了 maven 插件以使用属性进行身份验证,这将被我的 CI/CD 作业中的 CLI 覆盖,如下所示:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<docker>
<publishRegistry>
<username>${CI_REGISTRY_USER}</username>
<password>${CI_REGISTRY_PASSWORD}</password>
<url>${CI_REGISTRY}</url>
</publishRegistry>
</docker>
</configuration>
</plugin>
在 POM 中定义的没有值的属性(将通过 CLI 调用填充):
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>11</java.version>
<CI_REGISTRY/>
<CI_REGISTRY_USER/>
<CI_REGISTRY_PASSWORD/>
</properties>
我在管道/作业中的 maven CLI 调用使用 GitLab 注册表变量:
docker image job:
stage: Build
image: maven:3.6.3-jdk-11-slim
services:
- docker:dind
script:
- echo "java.runtime.version=11" > system.properties
- mvn spring-boot:build-image -DCI_REGISTRY=$CI_REGISTRY -DCI_REGISTRY_USER=$CI_REGISTRY_USER -DCI_REGISTRY_PASSWORD=$CI_REGISTRY_PASSWORD -Dspring-boot.build-image.imageName=SpringBootImage_${CI_JOB_ID} -Dspring-boot.build-image.publish=true
我通过 GitLab 和 Spring Boot 文档按照说明进行操作,但似乎无法确定我的问题:/ GitLab Registry Auth documentation Spring Boot Maven Plugin image publishing documentation
如果您需要更多信息,请告诉我。 我很欣赏任何方向和想法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。