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

树莓派部署的gitlab-runner报错Could not resolve host: gitlab.com如何解决

问题根因

你使用Docker类型的executor执行作业时,GitLab Runner会启动独立的Docker容器运行流水线任务,报错是该容器内部无法解析gitlab.com域名,和树莓派主机本身的网络连通性无关。
你之前配置的network_mode = "gitlab_default"仅适用于本地Docker部署GitLab服务的场景,你的场景用的是官方公共GitLab服务,本地不存在这个网络,所以会触发网络不存在的报错。

解决方案(按优先级尝试)

方案1:给作业容器配置公共DNS

修改config.toml中[runners.docker]配置段,新增DNS配置项,指定公共DNS服务器:

[runners.docker]
  tls_verify = false
  image = "node:latest"
  privileged = false
  disable_entrypoint_overwrite = false
  oom_kill_disable = false
  disable_cache = false
  volumes = ["/cache"]
  shm_size = 0
  # 新增以下内容,可根据需求替换为你常用的公共DNS
  dns = ["8.8.8.8", "114.114.114.114"]

修改完成后执行命令重启GitLab Runner服务生效:
sudo gitlab-runner restart

方案2:配置容器复用主机网络

如果方案1无效,可以让作业容器直接复用树莓派主机的网络栈,域名解析逻辑和主机完全一致,修改[runners.docker]段:

[runners.docker]
  # 原有配置保持不变,新增以下内容
  network_mode = "host"

修改后同样重启GitLab Runner服务生效。

方案3:手动指定gitlab.com域名映射

如果以上方案都不生效,可以手动给容器配置gitlab.com的IP映射:

  1. 先在树莓派主机执行ping gitlab.com获取gitlab.com的实际IP地址
  2. 修改[runners.docker]段,添加配置:
[runners.docker]
  # 原有配置保持不变,替换下方IP为你实际ping到的gitlab.com的IP
  extra_hosts = ["gitlab.com:你ping到的gitlab对应的IP"]

修改后重启服务生效。

注意:需要先删除你之前配置的错误的network_mode = "gitlab_default"配置,避免持续触发网络不存在的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:15:04