docker - 本地 Gitlab cicd 使用 linux runner 失败 'fatal: unable to access...Could not resolve host:...'

标签 docker dns gitlab gitlab-ci-runner

我正在尝试测试我的 python 项目并通过 gitlab 运行。我已经在我的 ubuntu 笔记本上安装了 runner 并在本地完成了注册
gitlab 服务器。
因此,得到了 2 台单独的机器,一台运行器,另一台是 gitlab 服务器。两台机器可以相互通信。
笔记本(192.168.100.10) ---- GitLab(172.16.10.100)

提交测试后,我的工作失败并显示以下消息;

Reinitialized existing Git repository in /builds/dz/mytest/.git/
 fatal: unable to access 'http://gitlab.lab01.ng/dz/mytest.git/': Could not resolve host: gitlab.lab01.ng
Uploading artifacts for failed job
 ERROR: Job failed: exit code 1

从我的笔记本 cli 中,我可以 ping gitlab 服务器 ip,但不能 ping 主机名,甚至 curl 也不知道主机名。
我相信这与无法解析的dns有关。
我在笔记本/etc/hosts 中添加了主机名,我可以 ping 主机名,但仍然无法运行作业并显示相同的消息。
我已经尝试过人们建议在 gitlab-runner config.toml 中添加以下内容,因此我在 config.toml 中添加以下内容(不确定添加到 config.toml 中是否正确)
[[runners]]
dns_search = [""] 


仍然失败并得到相同的消息无法重新同步主机。
我可以在我的笔记本设置/运行者上做什么?我没有对 gitlab 的管理员访问权限以进一步检查。
任何人都面临同样的问题。感谢您的帮助和支持。

--有关信息,我已尝试使用公共(public) gitlab (gitlab.com) 在我的笔记本上测试运行器,并且我可以成功运行作业而不会出现任何错误消息--

最佳答案

我假设您使用 docker 作为 GitLab 运行者的执行者,因为您没有在问题中指定它。 Docker 执行器不共享 /etc/hosts主机,但您可以使用 extra_hosts config.toml 中的参数让运行器容器知道自定义主机名:

[runners.docker]
extra_hosts = ["gitlab.lab01.ng:172.16.10.100"]

关于docker - 本地 Gitlab cicd 使用 linux runner 失败 'fatal: unable to access...Could not resolve host:...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62239995/

相关文章:

node.js - Docker Compose 抛出无效类型错误

linux - 本地主机在 Docker 教程期间拒绝访问端口

jQuery .load() 不工作

javascript - 支持 DNSSEC 和/或实验性新 RR 类型的 DNS 解析器库

windows - 几个 SSH key 和用户帐户

docker - 在根级存储库中添加jcenter()会破坏我的构建

docker - 无法在 gitlab-ci runner 上运行最新的 docker

selenium - 使用 docker 和 selenium 读取本地 URL

java - 在线Gitlab ci上安装Java

Gitlab 'Gateway Timeout' 位于 traefik 代理后面