自托管的gitlab,CI docker登录失败并显示以下消息:禁止访问

时间:2018-07-26 08:44:40

标签: docker continuous-integration gitlab gitlab-ci

在本地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

2 个答案:

答案 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>

我认为这应该可以解决问题。