如何让Docker Gitlab CI运行器在其父主机上访问Git?

bcm*_*cfc 11 gitlab docker

Gitlab在我们的内部网络上设置为http:// gitlab

同一台机器上的Docker容器无法连接到它.

如何配置docker以便它知道gitlab是它的父级?


当Gitlab CI尝试运行构建(在Docker容器内)时,问题就出现了:

克隆到'/ builds/ns/project'...致命:无法访问' http:// gitlab-ci-token:xxxxxx@gitlab/ns/project.git/ ':无法解析主机'gitlab'

我试着加入该网络的DNS服务器DOCKER_OPTS/etc/default/docker没有用.

Pie*_*reF 13

根据GitLab CI Runner Advanced配置,您可以尝试使用extra_hostsGitLab CI运行器中的参数.在/etc/gitlab-runner/config.toml:

[[runners]]
  url = "http://gitlab/ci"
  token = "TOKEN"
  name = "my_runner"
  executor = "docker"
  [runners.docker]
    host = "tcp://<DOCKER_DAEMON_IP>:2375"
    image = "..."
    ...
    extra_hosts = ["gitlab:192.168.0.39"]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,当运行测试git的容器内部将尝试从gitlab克隆时,它将使用192.168.0.39此主机名的IP作为IP.


dne*_*hin 0

--dns您可以使用标记配置容器 dns docker run( https://docs.docker.com/engine/reference/run/#network-settings ),但默认情况下它应该使用主机 dns。