GitLab CI-无法登录到Docker注册表(x509)

GitLab CI-无法登录到Docker注册表(x509),docker,gitlab,gitlab-ci,docker-in-docker,Docker,Gitlab,Gitlab Ci,Docker In Docker,我正在尝试使用Docker executor和Docker-in-Docker方法设置GitLab CI/CD,但遇到了以下问题: 在my.gitlab-ci.yml中,我试图为项目与gitlab的集成docker注册表建立连接: before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY 但是,管道退出时出现以下错误: Error response from daemon: Get htt

我正在尝试使用Docker executor和Docker-in-Docker方法设置GitLab CI/CD,但遇到了以下问题:

在my.gitlab-ci.yml中,我试图为项目与gitlab的集成docker注册表建立连接:

before_script:
   - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
但是,管道退出时出现以下错误:

Error response from daemon: Get https://my.gitlab.server:1234/v2/: x509: certificate signed by unknown authority
我可以登录到注册表并从运行gitlab runner的机器上进行推/拉操作,而不会出现问题,因此我知道证书问题不在主机上。此外,我还尝试从Docker:latest创建一个自定义Docker映像构建,它将我的证书复制到构建容器中——我尝试将它同时放入/etc/ssl/certs和/etc/Docker/certs.d/my.gitlab.server:1234中,但没有成功


你知道我需要把我的证书放在哪里,或者如何解决这个问题吗?

当有人遇到这个问题时,我通过向docker dind服务添加“unsecure registry”参数解决了这个问题。 但这只是一个解决办法,不是解决办法

.gitlab-ci.yml

image: docker

services:
  - name: docker:dind
    command: ["--insecure-registry=gitlab.MYDOMAIN:PORT"]

before_script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY

stages:
  - build

build:
  stage: build
  script:
    - docker build .......
我找到了另一种(黑客)方法将--unsecure注册表参数传递给dockerd,它不涉及自定义gitlab-ci.yml配置文件

mkdir -p /etc/gitlab-runner/dindhack
cat << EOF > /etc/gitlab-runner/dindhack/dockerd-entrypoint.sh 
#!/bin/sh
/usr/local/bin/dockerd-entrypoint.sh --insecure-registry=gitlab.MYDOMAIN:PORT $@
EOF

谢谢你,我花了很多时间试图让它正常工作。有没有办法在终端登录时做到这一点?
[[runners]]
  name = "###########"
  url = "###########"
  token = "###########"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:stable"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache", "/etc/gitlab-runner/dindhack:/usr/local/sbin"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]