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

GitLab Runner Docker执行Job时无法解析gitlab.localhost.com主机求助

解决GitLab Runner Alpine镜像无法解析gitlab.localhost.com的问题

你的问题核心在于Runner的Docker executor启动的Alpine容器无法识别你本地自定义的域名gitlab.localhost.com——虽然GitLab和Runner容器本身能解析这个域名,但它们启动的子容器(Alpine)默认采用Docker主机的DNS配置,没有包含这个自定义域名的解析记录。下面给你几个可行的修复方案:

方案1:让Alpine容器加入GitLab专属网络(推荐)

Docker Compose默认会为项目创建一个专属网络,GitLab和Runner容器都在这个网络内,互相可以通过容器名直接访问。我们只需要让Runner启动的Alpine容器也加入这个网络,同时保持用GitLab容器名作为访问地址:

步骤1:重新注册Runner(或修改现有配置)

如果选择重新注册,执行以下命令(注意替换<项目网络名>,一般是你的docker-compose项目文件夹名_default,比如项目文件夹叫gitlab,那就是gitlab_default):

docker exec -it gitlab_gitlab-runner_1 gitlab-runner register --non-interactive --url http://gitlab_gitlab_1 --registration-token _wgMgEx3nBocYQtoi83c --executor docker --docker-image alpine:latest --docker-network-mode gitlab_default

如果不想重新注册,直接修改Runner配置文件:

  1. 进入Runner容器:
docker exec -it gitlab_gitlab-runner_1 /bin/bash
  1. 编辑/etc/gitlab-runner/config.toml,找到对应Runner的配置块,确认并添加:
    • 确保url = "http://gitlab_gitlab_1"(你注册时已设置)
    • 在[[runners.docker]]小节下添加:
      network_mode = "gitlab_default"
      
  2. 退出容器后重启Runner:
docker restart gitlab_gitlab-runner_1

这样Alpine容器会加入GitLab所在的专属网络,既能通过gitlab_gitlab_1容器名访问GitLab,也能在该网络内解析自定义域名(如果GitLab容器配置了对应hostname的话)。

方案2:给Alpine容器添加自定义域名映射

如果坚持要用gitlab.localhost.com这个域名,可以在Runner配置里直接映射该域名到GitLab容器的IP:

  1. 先获取GitLab容器的IP:
docker inspect gitlab_gitlab_1 | grep "IPAddress"
  1. 编辑Runner的/etc/gitlab-runner/config.toml,在[[runners.docker]]部分添加:
[[runners.docker]]
  # 保留原有配置...
  extra_hosts = ["gitlab.localhost.com:<刚才获取的GitLab容器IP>"]
  1. 重启Runner容器即可生效。

方案3:修改Docker主机配置全局生效

你也可以在Docker主机的/etc/hosts里添加gitlab.localhost.com <GitLab容器IP>,然后修改Docker daemon配置文件/etc/docker/daemon.json,让所有容器继承主机的hosts解析:

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

最后重启Docker daemon:

systemctl restart docker

为什么之前的docker-compose修改没用?

你修改的是GitLab和Runner容器本身的配置,但Runner的Docker executor启动的Alpine容器是独立的子容器,默认不受docker-compose配置影响,必须通过Runner自身的配置来指定它的网络或DNS规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:34:39