config.toml文件在gitlab-runner寄存器上自动创建:
error during connect: Get http://docker:2375/v1.40/containers/json?all=1: dial tcp: lookup docker on 67.207.67.2:53: no such host
gitlab ci文件:
concurrent = 1
check_interval = 0
[[runners]]
name = "digital ocean runner"
url = "https://gitlab.com/"
token = "xxxxxxxxxxxxxxxxx"
executor = "docker"
[runners.docker]
tls_verify = false
image = "ruby:2.1"
privileged = true
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
重现步骤
image: docker:latest
services:
- docker:dind
stages:
- test
test-build:
stage: test
script:
- echo "Fine!"
- docker info
tags:
- docker
导致此问题的原因?
其中一项测试的错误日志,而不是以上工作的错误日志:
open a gitlab.com account
Install Ubuntu latest
Install gitlab-runner
do `register` and should have the config.toml above
#1 楼
我可能在我的Ubuntu实例中跳过了docker的可选安装,因此,如果gitlabRunner要使用Docker,请记住安装它:curl -sSL https://get.docker.com/ | sh
我回来了这个问题,并且似乎通过检查gitlab运行程序是否已运行而部分修复了它。相关。那就是:
gitlab-runner status
systemctl is-enabled gitlab-runner
systemctl is-enabled docker
然后我找到了解决方案,在这里报告了Gitlab CI中的一个问题(https://gitlab.com/gitlab-org/gitlab -runner / issues / 4566#note_199261985);有很多方法可以解决此问题,但是我的解决方案如下:
1)将
.gitlab-ci.yml
服务设置为使用旧的dind版本:error during connect: Post http://docker:2375/v1.40/images/ [...] dial tcp: lookup docker on xx.xxx.xx.x:xx: no such host
2)检查toml文件
/etc/gitlab-runner/config.toml
,将DOCKER_HOST设置为以防万一,以指向正确的位置,并确保它以privileged
模式运行。我的工作版本是:services:
- docker:18.09.7-dind
希望以后对其他人有帮助!
#2 楼
我要分享解决方案!只需添加
image = docker:stable
和privileged = true
就可以了!享受吧!
评论
不确定拒绝投票和没有贡献的目的是什么。上面的问题是一个已知问题,而gitlab ci尚未提供修复。非常感谢您的不赞成票,这是建立一个很棒的社区的方式。