具有 Docker 执行程序克隆问题的 OmniBus GitLab CE Multirunner

OmniBus GitLab CE Multirunner with Docker executor cloning issues

我已经在 Ubuntu 上安装了 GitLab CE 使用 OmniBus 包和 GitLab CI Multirunner 与 Docker 执行器(docker 配置 Multirunner 时的选项)。

我 运行 一个简单的测试管道 .gitlab-ci.yml:

image: node
default:
  script:
  - echo okay

它在 CI 构建作业日志中给我这个错误:

无法解析主机 {computerName}

我看到有人建议在 [runner.docker] 下将 extra_hosts = ["{computerName}:127.0.0.1"] 添加到 /etc/gitlab-runner/config.toml,这样错误就消失了。

现在我收到这个错误:

无法访问“http://gitlab-ci-token:{ciToken}:{computerName}/root/test.git/”:无法连接到 {computerName} 端口 80 : 连接被拒绝.

我看到了更改 external_url 的建议,但我不确定要更改什么。目前它说 {computerName} 和其他地方一样。跑步者正试图在端口 80 访问它,正如我所期望的那样。

我想也许 80 在 Firefox 和 Git 中为我工作但在运行器中不工作意味着它试图连接到 Docker 网络中的 80 但失败了,因为服务在主机网络。将 http://gitlab-ci-token:{ciToken}:{computerName}/root/test.git/ 粘贴到浏览器时,我进入了我的 GitLab 实例中的存储库页面,这一事实进一步强化了这个想法。

我不知道要将 external_url 更改为什么,以便它与 Docker 容器中的 Git 克隆一起使用。如何将两者联网?

作为参考,我还在新的 topic on GitLab Forum 中链接了这个问题,如果找到答案,我会请作者也回答 SO,这样我就可以关闭这个 SO 问题。

extra_hosts = 行应该为您的 gitlab 服务器可以从 inside 您的 docker 容器访问的 IP 添加一个主机条目,所以可能不会127.0.0.1.

如果 运行 docker 与你的 gitlab 在同一台机器上,这是分配给你的 docker0 接口的 ip,例如 172.17.0.1