准备失败:无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护程序
Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock
我启动了一个docker容器gitlab-ci-runner,然后用docker注册了一个runner作为executor,使用node:latest作为docker图片。
但是当我推送提交到 gitlab 时,我得到了这个错误:
Running with gitlab-runner 11.3.1 (0aa5179e)
on docker-ci 0f9fe2c4
Using Docker executor with image node:latest ...
ERROR: Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:1150:0s)
这是我的 gitlab config.toml:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "docker-ci"
url = "http://gitlab.xxxxxx.com/"
token = "0......fc5"
executor = "docker"
[runners.docker]
tls_verify = false
image = "node:latest"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
我使用以下方式启动容器:
sudo docker run -d --name gitlab-runner --restart always \
-v ~/srv/gitlab-runner/config:/etc/gitlab-runner \
-v ~/var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
并使用以下方式注册:
sudo docker run --rm -t -i -v ~/srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
我是 docker 的新手,找不到错误 reason.Is 有人可以帮助我吗?
因为您的 CLI 容器或 gitlab-ci-runner container
需要在容器中安装主机的 Docker 套接字。这将允许您的容器将主机的 Docker 守护程序用于 运行 容器并构建图像。
你只需要修改gitlab的运行命令-ci-运行ner.
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
我的情况是我的机器上没有 docker。这是安装文件
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce
sudo apt-get install docker-ce docker-ce-cli containerd.io
如@Adiii 所述。区别在于:
- docker-container 的启动方式 volume mount 需要从
~/var/run/docker.sock:/var/run/docker.sock
或 /srv/run/docker.sock:/var/run/docker.sock
更改为 /var/run/docker.sock:/var/run/docker.sock
- 和
config.toml
[[runners]]
[runners.docker]
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
在哪里
“/var/run/docker.sock:/var/run/docker.sock”是重要的变化。
此处问题讨论中的最佳描述:
https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1986
我启动了一个docker容器gitlab-ci-runner,然后用docker注册了一个runner作为executor,使用node:latest作为docker图片。 但是当我推送提交到 gitlab 时,我得到了这个错误:
Running with gitlab-runner 11.3.1 (0aa5179e)
on docker-ci 0f9fe2c4
Using Docker executor with image node:latest ...
ERROR: Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:1150:0s)
这是我的 gitlab config.toml:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "docker-ci"
url = "http://gitlab.xxxxxx.com/"
token = "0......fc5"
executor = "docker"
[runners.docker]
tls_verify = false
image = "node:latest"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
我使用以下方式启动容器:
sudo docker run -d --name gitlab-runner --restart always \
-v ~/srv/gitlab-runner/config:/etc/gitlab-runner \
-v ~/var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
并使用以下方式注册:
sudo docker run --rm -t -i -v ~/srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
我是 docker 的新手,找不到错误 reason.Is 有人可以帮助我吗?
因为您的 CLI 容器或 gitlab-ci-runner container
需要在容器中安装主机的 Docker 套接字。这将允许您的容器将主机的 Docker 守护程序用于 运行 容器并构建图像。
你只需要修改gitlab的运行命令-ci-运行ner.
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
我的情况是我的机器上没有 docker。这是安装文件 https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce
sudo apt-get install docker-ce docker-ce-cli containerd.io
如@Adiii 所述。区别在于:
- docker-container 的启动方式 volume mount 需要从
~/var/run/docker.sock:/var/run/docker.sock
或/srv/run/docker.sock:/var/run/docker.sock
更改为/var/run/docker.sock:/var/run/docker.sock
- 和
config.toml
[[runners]]
[runners.docker]
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
在哪里 “/var/run/docker.sock:/var/run/docker.sock”是重要的变化。
此处问题讨论中的最佳描述: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1986