在本地PC上,我可以很好地登录到Repo,但是当我尝试从gitlab中的CI中登录时,它总是失败,并显示消息denied: access forbidden
。
这是CI的输出:
-----
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://gitlab.domain.nl:5002/v2/: denied: access forbidden
----
这是我的项目文件:
# Official docker image.
image: docker:latest
services:
- docker:dind
build-master:
stage: build
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.domain.nl:5002
only:
- master
答案 0 :(得分:0)
如果您的GitLab实例是最新的,则应为CI_REGISTRY_*
的所有部分使用docker login …
变量。
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
有关详细信息,请参见GitLab CI/CD Variables。
答案 1 :(得分:0)
理想情况下,答案与上述相同
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
但是我从docker登录端遇到了这个问题。确保您的注册表配置了有效的SSL证书。 https://docs.docker.com/registry/deploying/#get-a-certificate。
检查
curl https://<$CI_REGISTRY>/v2/
哪个应该回来
{}
并且您还需要在项目设置中添加此变量。
DOCKER_AUTH_CONFIG
:<paste the contents of ~/.docker/config.json>
我认为这应该可以解决问题。