gitlab-ci与docker集成问题

要用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

你可能感兴趣的:(gitlab-ci与docker集成问题)