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

GitLab CI公共Runner构建Docker镜像失败,遇DNS解析错误求助

GitLab CI构建镜像推GCR遇docker主机解析失败的解决方案

问题详情

使用GitLab公共Runner(版本15.7.1)搭建CI流水线,构建镜像并推送至Google容器仓库(GCR)时,出现以下错误:

ERROR: error during connect: Get "http://docker:2375/v1.24/info": dial tcp: lookup docker on 169.254.169.254:53: no such host

当前CI脚本如下:

image: docker:latest

variables:
  GCR_IMAGE: <GCR_IMAGE>

services:
  - docker:dind

build:
  stage: build
  before_script:
    - docker info
    - echo $GOOGLE_CLOUD_ACCOUNT | docker login -u _json_key --password-stdin https://us.gcr.io
  script:
    - docker build -t $GCR_IMAGE:latest .
    - docker push $GCR_IMAGE:$CI_COMMIT_SHA

针对公共Runner的可行解决方案

1. 匹配Docker镜像版本并启用TLS配置

新版docker:dind默认启用TLS加密,公共Runner的网络解析或权限限制可能导致无TLS连接失败。需同步主镜像和服务镜像版本,并添加TLS相关环境变量:

image: docker:24.0.6

variables:
  GCR_IMAGE: <GCR_IMAGE>
  # 启用TLS并指定证书目录
  DOCKER_TLS_CERTDIR: "/certs"
  # 指定TLS连接地址
  DOCKER_HOST: "tcp://docker:2376"

services:
  - docker:dind:24.0.6

build:
  stage: build
  before_script:
    - docker info
    - echo $GOOGLE_CLOUD_ACCOUNT | docker login -u _json_key --password-stdin https://us.gcr.io
  script:
    - docker build -t $GCR_IMAGE:latest .
    - docker push $GCR_IMAGE:$CI_COMMIT_SHA

2. 使用Kaniko替代Docker-in-Docker

公共Runner通常对docker:dind有严格的权限和网络限制,Kaniko是无守护进程的镜像构建工具,无需依赖Docker daemon,更适合公共环境:

image: gcr.io/kaniko-project/executor:debug

variables:
  GCR_IMAGE: <GCR_IMAGE>
  # Kaniko配置文件路径
  KANIKO_CONFIG: /kaniko/.docker/config.json

build:
  stage: build
  before_script:
    # 生成GCR登录配置
    - echo "{\"auths\":{\"us.gcr.io\":{\"auth\":\"$(echo -n _json_key:$(echo "$GOOGLE_CLOUD_ACCOUNT") | base64)\"}}}" > $KANIKO_CONFIG
  script:
    # 构建并推送镜像
    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $GCR_IMAGE:latest --destination $GCR_IMAGE:$CI_COMMIT_SHA

3. 检查公共Runner的可用服务限制

部分GitLab公共Runner池可能禁用了docker:dind服务,可尝试切换至其他公共Runner池,或确认当前池的服务权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:45:31