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

为何GitLab Runner拉取仓库时使用的URL与config.toml中配置的不一致?

问题排查与解决

根因说明

你在config.toml中配置的[[runners]]下的url参数仅用于Runner向GitLab服务端轮询任务、上报运行状态,和任务执行阶段拉取代码的地址无关。
拉取代码的仓库地址由GitLab服务端根据自身配置的external_url参数生成,随任务信息一同返回给Runner,因此会出现访问地址和config.toml配置不一致的情况。你当前遇到的超时错误,是因为Runner的Docker执行环境无法正常访问GitLab返回的公网地址8.136.221.242:8010。

解决方案

方案一(推荐):覆写Runner克隆地址

直接在Runner的config.toml的对应[[runners]]配置块中添加clone_url参数,强制指定拉取代码使用的内网地址:

[[runners]]
  name = "******"
  url = "http://172.17.0.3:8010/"
  clone_url = "http://172.17.0.3:8010/" # 新增这一行
  token = "*********"
  executor = "docker"
  # 其余原有配置保持不变

配置修改完成后重启GitLab Runner服务即可生效,该方案不会影响公网用户访问GitLab获取克隆地址。

方案二:修改GitLab的external_url配置

如果所有Runner都部署在同一服务器的Docker内网环境中,你可以修改GitLab的配置文件gitlab.rb,将external_url调整为Docker内网地址:

external_url "http://172.17.0.3:8010/"

修改完成后执行gitlab-ctl reconfigure命令生效。注意该方案会导致公网访问GitLab时,页面显示的仓库克隆地址也为内网IP,不适合有外部用户使用GitLab的场景。

方案三:开放公网端口访问

如果服务器安全策略允许,在服务器防火墙和云服务商安全组中放开8010端口的入方向访问规则,Runner即可正常通过公网地址拉取代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 06:15:07