要用gitlab-ci加docker来构建项目,运行job时报错:
ERROR: Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因是我用root运行docker,而gitlab的runner是用gitlab-runner这个帐户来运行的,遇到了权限问题。
ls -slh /var/run/docker.sock
0 srw-rw---- 1 root root 0 Dec 7 10:16 /var/run/docker.sock
用su - gitlab-runner切换帐户后,也会报告相同的错
$ docker info
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
解决方法是创建一个docker组
groupadd docker
并重启docker进程,这样它会自动用docker这个组在启动
systemctl restart docker
ls -slh /var/run/docker.sock
0 srw-rw---- 1 root docker 0 Dec 10 10:30 /var/run/docker.sock
最后把gitlab-runner加入docker组就可以了。
usermod -aG docker gitlab-runner
网友评论