我在虚拟机中使用gitlab。我将使用gitlab-ci(在同一个VM中)和docker。
要访问我的gitlab,我使用域git.local(在我的计算机上重定向到我的VM,重定向到我的VM中的127.0.0.1)。
当我启动测试时,测试返回:
致命:无法访问' http://gitlab-ci-token:xxxxxx@git.local/thib3113/ESCF.git/':无法解析主机' git.local'
所以我的问题是:如何将git.local的重定向添加到容器IP?我看到了arg -h <host>
的docker,但我不知道如何告诉gitlab使用这个参数。或者也许是告诉docker使用容器dns的配置?
我看到了这一点:How do I get a Docker Gitlab CI runner to access Git on its parent host? 但同样的问题,我不知道如何添加参数:/。
答案 0 :(得分:16)
根据GitLab CI Runner Advanced configuration,您可以尝试使用GitLab CI运行中的extra_hosts
参数。
在/etc/gitlab-runner/config.toml
:
[[runners]]
url = "http://localhost/ci"
token = "TOKEN"
name = "my_runner"
executor = "docker"
[runners.docker]
host = "tcp://<DOCKER_DAEMON_IP>:2375"
image = "..."
...
extra_hosts = ["localhost:192.168.0.39"]
使用此示例,当运行测试git的容器内部将尝试从 localhost 克隆时,它将使用192.168.0.39
作为此主机名的IP。
答案 1 :(得分:0)
如果要在docker中使用dns,请使用dns-gen遵循以下简单步骤,您可以将主机名分配给多个docker容器。 1.通过发布此命令首先了解您的Docker IP
.client
/sbin/ifconfig docker0 | grep "inet" | head -n1 | awk '{ print $2}' | cut -d: -f2
docker run --detach \
--name dns-gen \
--publish dockerip:53:53/udp \
--volume /var/run/docker.sock:/var/run/docker.sock \
jderusse/dns-gen
echo "nameserver dockerip" | sudo tee --append /etc/resolvconf/resolv.conf.d/head
现在您应该可以在浏览器中访问docker容器了:-http://containername.docker
希望它能工作..谢谢。
sudo resolvconf -u