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

GitLab Runner无法解析gitlab.com域名及端口配置疑问求助

解决方案

一、先验证宿主机DNS可用性

在Debian OVH机器上执行以下命令,确认基础网络解析是否正常:

ping gitlab.com
nslookup gitlab.com
dig gitlab.com

如果这些命令无法解析域名,直接修改宿主机DNS配置:

  1. 临时修改/etc/resolv.conf:
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
  1. 永久修改(Debian系统):编辑/etc/systemd/resolved.conf,设置DNS=8.8.8.8 1.1.1.1,然后重启服务:
systemctl restart systemd-resolved

二、为GitLab Runner容器指定DNS服务器

你的Runner通过Docker Swarm部署,直接更新服务配置添加DNS:

docker service update --dns 8.8.8.8 --dns 1.1.1.1 gitlab_runner

验证配置是否生效:

docker service inspect gitlab_runner | grep -A5 "DNS"

如果是单容器Runner(非Swarm),重启容器时添加DNS参数:

docker run -d --name gitlab-runner --dns 8.8.8.8 --dns 1.1.1.1 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  gitlab/gitlab-runner:latest

三、配置Docker Daemon全局DNS

让所有容器默认使用可靠DNS,修改/etc/docker/daemon.json:

{
  "dns": ["8.8.8.8", "1.1.1.1"]
}

重启Docker服务:

systemctl restart docker

四、关于端口疑问的说明

8093端口映射和当前DNS解析问题无关:

  • GitLab Runner默认不需要对外暴露8093端口,你看到的服务端口映射是无效的,可移除:
docker service update --publish-rm 8093:8093 gitlab_runner
  • DNS解析依赖UDP 53端口,只要宿主机能访问外部DNS服务器,无需在iptables中额外添加规则。

问题回顾

GitLab Runner无法连接Git仓库,报错:

fatal: unable to access 'https://gitlab.com/project.git/': Could not resolve host: gitlab.com

已尝试的方案:

  • 重启Docker(注:原命令sudo systemctl daemon不完整,正确命令为sudo systemctl restart docker)
  • 重新创建并加载新的Runner
  • 更换Docker镜像

相关配置:

CI/CD配置

stages:
- docker

back:docker:
  stage: docker
  tags:
    - wellcov-runner
  image: docker:latest
  services:
    - docker:dind
  before_script:
  - echo -n $MAIN_REGISTRY_PASSWORD | docker login -u $MAIN_REGISTRY_USER --password-stdin $CI_REGISTRY
  variables:
    # Pushing into the shared Wellcov container registry (main repository)
    IMAGE: $MAIN_REGISTRY/wellcov-back-end:$CI_COMMIT_REF_NAME
  cache:
    paths:
    - target/
  script:
  - echo "Gitlab CI - Building back-end ${CI_COMMIT_REF_NAME} docker"
  - docker build -t $IMAGE . --build-arg MAVEN_IMAGE=$MAVEN_IMAGE --build-arg UBI_IMAGE=$UBI_IMAGE
  - docker push $IMAGE

Runner参数配置

concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "wellcov-runner"
  url = "https://gitlab.com/"
  id = 22344137
  token = "...."
  token_obtained_at = 2023-04-01T17:10:09Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  [runners.cache]
    MaxUploadedArchiveSize = 0
  [runners.docker]
    tls_verify = false
    image = "ruby:2.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    shm_size = 0

Docker服务/容器信息

docker service ls输出:

ID             NAME                              MODE         REPLICAS   IMAGE
x4lq3jnshtii   gitlab_runner                     replicated   1/1        gitlab/gitlab-runner:latest                                            ***:8093->8093/tcp**

docker container ls输出:

CONTAINER ID   IMAGE                                                                  COMMAND                  CREATED        STATUS                  PORTS      NAMES
652d53ee4780   gitlab/gitlab-runner:latest                                            "/usr/bin/dumb-init …"   14 hours ago   Up 14 hours                        gitlab_runner.1.m3wt71h3f5eldppib83j3uvzj

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:52:49