如何修复 Gitlab CI error during connect: Post http://docker:2375/v1.40/auth: dial tcp: lookup docker on ... no such host
问题:
在你的 GitLab CI 作业中,尝试运行某些 docker 命令时,你看到此错误消息:
example-3.sh
解决方案
此错误发生在使用 docker 执行器配置的基于 docker 的 gitlab runner 上。错误消息意味着内部 docker 容器没有连接到主机 docker 守护进程。
为了修复此问题,在你的 gitlab-runner config.toml 的 [runners.docker] 中设置这些选项:
example-2.txt
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]有效的 config.toml 如下所示:
example-1.ini
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "CoreOS-Haar-Runner"
url = "https://gitlab.techoverflow.net/"
token = "bemaiBie8usahMoo9ish"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker:stable"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
shm_size = 0为什么这有效
添加 "/var/run/docker.sock:/var/run/docker.sock" 允许在 gitlab-runner 内运行的内部 docker 容器访问外部(主机)docker 守护进程。没有这个,它尝试连接到 docker 默认 URL,即 http://docker:2375。此 URL 无法通过 DNS 解析(在我的情况下 DNS 服务器是 192.168.178.1,DNS 标准端口为 53),因此 docker 打印上面列出的错误消息。
Check out similar posts by category:
Docker
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow