同一Ubuntu机器GitLab CI用localhost失败:连接被拒绝
解决Docker类型GitLab Runner流水线连接拒绝问题
问题根源
Docker Runner运行在独立容器内,容器环境中的127.0.0.1指向容器自身,而非宿主机上的GitLab服务,因此会出现端口连接被拒绝的报错。
修复方案
替换项目克隆地址:
在项目的.gitlab-ci.yml配置或GitLab项目设置中,将克隆地址里的127.0.0.1替换为宿主机的实际IP或域名。例如把http://127.0.0.1/gitlab-instance-0daf0d62/car-assembly-line.git改成http://[宿主机实际IP]/gitlab-instance-0daf0d62/car-assembly-line.git。配置Runner网络模式为宿主机模式:
编辑GitLab Runner的配置文件(默认路径/etc/gitlab-runner/config.toml),在[runners.docker]段添加network_mode = "host",让容器直接使用宿主机网络,这样容器内的127.0.0.1就能指向宿主机:[[runners]] name = "Docker Runner" url = "http://[宿主机实际IP]/gitlab/" token = "你的Runner令牌" executor = "docker" [runners.docker] tls_verify = false image = "ubuntu:latest" privileged = false volumes = ["/cache"] network_mode = "host" # 新增此配置修改完成后重启Runner服务:
sudo gitlab-runner restart检查GitLab服务状态:
确认宿主机上的GitLab服务正常运行,且80端口未被其他进程占用:sudo gitlab-ctl status sudo netstat -tulpn | grep :80
验证
重新触发流水线,确认代码克隆步骤可正常连接GitLab仓库。
内容的提问来源于stack exchange,提问作者Aravindasamy Palanisamy
相关产品推荐
相关产品推荐

