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

如何为GitLab Runner设置DNS服务器或使其使用宿主机DNS?

GitLab Runner DNS配置问题

我的.gitlab-ci.yml文件中有如下配置:

image: docker:20.10.16
# When using dind, it's wise to use the overlayfs driver for
# improved performance.
variables: 
  DOCKER_TLS_CERTDIR: "/certs"
  DOCKER_DRIVER: overlay2
  
services:
    - docker:20.10.16-dind

pages:
  stage: deploy
  before_script:
    - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )' 
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan $REPO_IPADDRESS >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
    - docker info
  script:
    - docker --version
    - docker-compose -f docker-compose.prod.yaml up -d
  artifacts:
    paths:
      - public
  only:
    - main

请问如何为我的GitLab Runner设置DNS服务器,或使其使用运行它的操作系统的DNS服务器?


解决方案

方法1:修改GitLab Runner全局配置(所有任务生效)

找到Runner的配置文件config.toml(默认路径为/etc/gitlab-runner/config.toml),在[[runners]]区块的[runners.docker]下添加dns配置项,填入目标DNS服务器地址:

[[runners]]
  name = "你的Runner名称"
  url = "你的GitLab实例地址"
  token = "你的Runner令牌"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:20.10.16"
    privileged = true
    volumes = ["/cache"]
    # 指定DNS服务器
    dns = ["8.8.8.8", "8.8.4.4"]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

如果要复用宿主机DNS,直接把宿主机/etc/resolv.conf里的DNS地址复制到dns数组即可。修改完成后重启Runner服务:

sudo gitlab-runner restart

方法2:在CI配置中为Dind服务指定DNS(单任务生效)

由于你使用了docker:dind服务,可以通过环境变量为Dind容器单独设置DNS,在.gitlab-ci.yml的variables区块添加DOCKER_OPTS:

variables: 
  DOCKER_TLS_CERTDIR: "/certs"
  DOCKER_DRIVER: overlay2
  # 为Dind服务配置DNS
  DOCKER_OPTS: "--dns 8.8.8.8 --dns 8.8.4.4"

这样Dind启动时会加载指定的DNS,后续通过Dind创建的容器也会继承该配置。

方法3:让Runner共享宿主机网络(直接复用宿主机DNS)

如果你的Runner使用Docker executor,可以在config.toml中设置network_mode为host,让Runner容器直接使用宿主机的网络栈,包括DNS:

[[runners]]
  # ...其他配置
  [runners.docker]
    # ...其他配置
    network_mode = "host"

注意:该模式会让容器与宿主机共享所有网络资源,可能引发端口冲突,需根据实际场景评估使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:19:57