GitLab CI-无法登录到Docker注册表(x509)
我正在尝试使用Docker executor和Docker-in-Docker方法设置GitLab CI/CD,但遇到了以下问题: 在my.gitlab-ci.yml中,我试图为项目与gitlab的集成docker注册表建立连接: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
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]