我正在尝试创建一个流水线,使用 JIB(通过 Maven 插件)创建 Docker 镜像并将其推送到我的 Gitlab Registry。
在本地登录到 Docker 注册表后,这个过程可以正常工作。
现在当管道被触发时,我遇到了一个异常。
我猜测我之所以会遇到这个错误,是因为我还没有运行docker login -u [用户名] -p [密码/令牌] 但是我需要一个.gitlab-ci.yml文件,其中使用了一个docker-in-docker镜像,才能在我的脚本中运行docker login? 有没有其他方法可以在我的Gitlab CI上构建此镜像,而不使用docker-in-docker镜像?
在本地登录到 Docker 注册表后,这个过程可以正常工作。
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<allowInsecureRegistries>true</allowInsecureRegistries>
<from>
<image>dockerhost/projectgroup/alpine</image>
</from>
<to>
<image>dockerhost/project/imagename:${project.version}</image>
</to>
<container>
<useCurrentTimestamp>true</useCurrentTimestamp>
</container>
</configuration>
</plugin>
假设我有一个名为 .gitlab-ci.yml 的文件,内容如下:
stages:
- build_image
build_image:
stage: build_image
tags:
- dev
script: |
mvn compile jib:build
现在当管道被触发时,我遇到了一个异常。
Build image failed: Failed to authenticate with registry dockerhost/projectgroup/alpine because: peer not authenticated
我猜测我之所以会遇到这个错误,是因为我还没有运行docker login -u [用户名] -p [密码/令牌] 但是我需要一个.gitlab-ci.yml文件,其中使用了一个docker-in-docker镜像,才能在我的脚本中运行docker login? 有没有其他方法可以在我的Gitlab CI上构建此镜像,而不使用docker-in-docker镜像?
dockerhost
实际上是一个Docker引擎(本地或远程)。 (2)“peer not authenticated”是一个SSL证书验证问题。 - Chanseok Oh