首页 > 解决方案 > gitalb CI:x509:访问私有 docker 注册表时由未知权威签署的证书

问题描述

无法从 gitlab-ci 登录到我的私人 docker 注册表。

设想:

  1. gitlab CE综合安装,注册表在gitlab里面。
  2. 带有 docker executor 的 gitlab-runner 在 docker swarm 集群中作为容器运行
  3. gitlab-runner 在 /etc/gitlab-runner/certs/ 中有一个 ca.crt
  4. ca.crt 以正确的顺序包含服务器、中间证书和根证书。
  5. 它不是自签名证书,而是通配符证书 (*.domain.com)
  6. 在 gitlab-runner 容器内,我可以毫无错误地curl https://registry.domain.com运行

我试过的:

.gitlab-ci.yml

build_image:  
  image: docker:19.03.8
  services:
    - name: docker:19.03.12-dind
      command: ["--insecure-registry=registry.domain.com:443"]
      alias: docker
  stage: build
  ...
  script:
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.domain.com

obs:我已经看到这个没有成功。

标签: gitlab-cidocker-swarmgitlab-ci-runnerdocker-registry

解决方案


我仍然不知道是什么导致了这个问题,但解决方案是在 gitlab-runner 中安装 docker socket

gitlab-runner register <other_options> --docker-volumes /var/run/docker.sock:/var/run/docker.sock


推荐阅读