我正在尝试创建一个管道,其中使用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>stages:
- build_image
build_image:
stage: build_image
tags:
- dev
script: |
mvn compile jib:buildBuild image failed: Failed to authenticate with registry dockerhost/projectgroup/alpine because: peer not authenticated我假设我收到这个错误是因为我还没有运行docker登录-u用户名-p密码/令牌
我需要一个.gitlab-ci.yml来使用docker-in-docker镜像才能在我的脚本中运行docker login吗?
在我的Gitlab CI上有没有使用docker-in-docker镜像构建此镜像的替代方案?
发布于 2020-12-03 00:03:08
从GitLab 9.0开始,所有necessary variables are available by default
CI_REGISTRY --项目的registryCI_REGISTRY_IMAGE --项目的基本镜像名称registryCI_REGISTRY_USER --可以访问项目的技术用户registryCI_REGISTRY_PASSWORD --该用户的密码/令牌因此,您可以使用以下命令构建和发布镜像:
mvn compile jib:build \
-Djib.to.auth.username=${CI_REGISTRY_USER} \
-Djib.to.auth.password=${CI_REGISTRY_PASSWORD} \
-Djib.to.image=${CI_REGISTRY_IMAGE}:latest您还可以使用Maven settings,就像您通常在Maven注册中心上进行身份验证一样。
发布于 2019-09-21 01:40:42
使用GitLab,您可以定义秘密的环境变量,您可以使用这些变量将您的注册凭据传递给Jib。
使用Jib
mvn编译jib:build -depi.to.image=my- -Djib.to.auth.username=$REGISTRY_USER -image:最新的容器镜像
发布于 2021-08-22 10:21:36
对于Gradle用户:
./gradlew jib \
-Djib.to.image=${CI_REGISTRY_IMAGE}:latest \
-Djib.to.auth.username=${CI_REGISTRY_USER} \
-Djib.to.auth.password=${CI_REGISTRY_PASSWORD}https://stackoverflow.com/questions/54683567
复制相似问题