我正在使用gitlab ci进行持续集成,我想在我的代码上运行单元测试,然后构建一个docker镜像,然后进行部署。
但是我面临的问题是如何在gilab ci中运行docker服务。
我得到这个错误
"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running"
在我的docker build命令运行之后
我需要在gitlab-ci中安装docker吗?
这是我的.gitlab-ci.yml文件
image: node:latest
before_script:
stages:
- test
- production
- clean_up
services:
- docker:dind
test:
stage: test
script:
- npm install
- npm install -g swagger
- npm test
production:
type: deploy
stage: production
image: docker:latest
script:
- docker build -t testimage -t testimage:latest .
- docker tag testimage docker.abc.xyz.com/testimage
- docker push docker.abc.xyz.com/testimage
only:
- development
clean_up_job:
stage: clean_up
script:
- rm -rf node_modules
- npm uninstall -g swagger
when: on_failure
我目前不在使用GitLab Runner。
最佳答案
尝试将services
放入production
作业中,如下所示:
production:
type: deploy
stage: production
image: docker:latest
services:
- docker:dind
script:
- docker build -t testimage -t testimage:latest .
- docker tag testimage docker.abc.xyz.com/testimage
- docker push docker.abc.xyz.com/testimage
only:
- development
关于docker - 无法通过unix :///var/run/docker. socks 连接到Docker守护程序。 Docker守护程序是否正在运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45166144/