我正在尝试创建一个管道,其中使用 JIB(通过 Maven 插件)创建 docker 图像并将其推送到我的 Gitlab 注册表。
当我登录到我的 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 [username] -p [password/token]
我怎么会需要一个使用 docker-in-docker 映像的 .gitlab-ci.yml 才能在我的脚本中运行 docker login?
除了使用 docker-in-docker 映像在我的 Gitlab CI 上构建此映像之外,还有其他方法吗?