You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI/CD中Docker登录提示未知权威签名证书错误求助

解决方案

方法1:在CI脚本中更新证书信任

docker:dind镜像默认的CA证书列表可能未包含你的证书颁发机构(CA)的根证书——即使你的证书不是自签名的,也可能是因为镜像内的证书包版本过旧。可以在CI脚本中添加证书更新步骤:

修改你的.gitlab-ci.yml:

stages:
  - build

docker-build:
  image: docker:latest
  services:
   - docker:dind
  stage: build
  script:
    # 更新CA证书包
    - apk add --no-cache --upgrade ca-certificates
    # 如果公共CA更新后仍无效,手动导入GitLab镜像仓库证书
    # 替换为你证书的实际获取路径,比如从项目文件复制或curl下载
    - curl -o /usr/local/share/ca-certificates/gitlab_registry.crt https://git.domain.com:5050/cert
    - update-ca-certificates
    # 执行登录
    - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin

方法2:通过Runner挂载宿主机证书

你本地Docker可以正常登录,说明宿主机已信任该CA证书。可以修改GitLab Runner的config.toml,将宿主机的证书挂载到CI容器中:

找到[runners.docker]下的volumes配置,添加宿主机证书路径的挂载:

[runners.docker]
  tls_verify = false
  image = "node:latest"
  privileged = true
  disable_entrypoint_overwrite = false
  oom_kill_disable = false
  disable_cache = false
  volumes = ["/cache", "/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt"]
  shm_size = 0

修改后重启GitLab Runner服务:

gitlab-runner restart

方法3:检查镜像仓库地址配置

确认CI_REGISTRY变量指向的地址是否正确,确保端口、协议(http/https)与GitLab镜像仓库的实际配置一致。如果镜像仓库配置了HTTPS,需保证证书链完整且被信任。

内容的提问来源于stack exchange,提问作者Cacus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:25:26