我有两个存储库,我们称它们为project1和project2。我可以从project1 成功构建一个镜像为project1_image,并使用project1 中的管道作业将其推送到project1 容器注册表。 但是,当我尝试将图像构建为project2_image并将其从project1的管道推送到project2容器注册表时,出现以下错误:
"denied: requested access to the resource is denied" when attempting to push.
是否可以在project1的管道中创建一个镜像,将其命名为project2_image,并将其推送到project2的容器注册表?
我正在使用 gitlabs 默认运行程序。
Here is the .gitlab-ci.yml file in project1 that is attempting to push the image to project2.
build image:
stage: build
image: docker:stable
services:
- name: docker:dind
alias: thedockerhost
variables:
# Tell docker CLI how to talk to Docker daemon; see
# https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker-executor
DOCKER_HOST: tcp://thedockerhost:2375/
# Use the overlayfs driver for improved performance:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- docker build -t gitlab.com:5050/groupname/project2/pythonapp .
- docker push gitlab.com:5050/groupname/project2/pythonapp
是否可以在project1的管道中创建一个镜像,将其命名为project2_image,并将其推送到project2的容器注册表?
是的。
尝试推送时“被拒绝:请求访问资源被拒绝”。
因此请使用正确的凭据。自动提供的
-u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
用于访问项目 1,而不是项目 2。