【问题标题】:Local Gitlab cicd failed 'fatal: unable to access...Could not resolve host:...' with linux runner本地 Gitlab cicd 使用 linux 运行程序失败“致命:无法访问...无法解析主机:...”
【发布时间】:2020-06-07 01:48:06
【问题描述】:

我正在尝试测试我的 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 的管理员访问权限以进一步检查。 任何人都面临同样的问题。感谢您的帮助和支持。

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

【问题讨论】:

  • 您是否测试过您的 ssh 密钥是否正常工作?
  • 我的 ssh 密钥工作正常...谢谢,
  • 在我的例子中,防火墙拒绝了来自 docker 的请求,使用 ufw 来允许。

标签: docker dns gitlab gitlab-ci-runner


【解决方案1】:

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

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

【讨论】:

  • 是的,它是一个基于 docker 的执行器。感谢您的回复和帮助。将进一步检查。
猜你喜欢
  • 2022-11-25
  • 2018-04-15
  • 2022-07-25
  • 2014-05-20
  • 2021-03-24
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
相关资源
最近更新 更多