我有一个私有的git repo。我的runner在另一台机器上,都是ubuntu。当我试着在yml文件中ping $CI_REGISTRY时,我发现在构建过程中$CI_REGISTRY域名没有解析到正确的IP地址。我需要命中服务器的内部地址,而不是外部地址,所以我在运行gitlab runner的主机上设置了一个主机文件,该文件具有正确的地址,但执行程序忽略了它。奇怪的是,它得到的地址是cloudflare网络上的内部地址,而不是我试图访问的主机的外部地址,如果它正在进行DNS查找,我会认为这是一个外部地址。
我可以怎样:
- 强制Docker执行器使用主机的hosts文件
- 传入一个环境变量(或其他东西),执行器可以使用它来正确解析地址
4条答案
按热度按时间j9per5c41#
此问题已通过修改/etc/gitlab-runner/config.toml得到解决:
i1icjdpr2#
您需要修改容器的
/etc/hosts
文件,而不是主机的host文件,最简单的方法是--add-host
选项。文档如下:
将条目添加到容器主机文件(--add-host)
您可以使用一个或多个
--add-host
标志将其他主机添加到容器的/etc/hosts
文件中。此示例为名为docker
的主机添加静态地址:(来源。)
q35jwt9p3#
我尝试了几个解决方案,但没有工作,直到我简单地输入ip+端口,而不是我的假域名
有时候,在深入研究stackoverflow之前,值得思考一下:D
mec1mxoz4#
码头执行人:
Kubernetes遗嘱执行人: