无法在unix:///var/run/docker.sock连接到Docker守护程序。 docker守护程序是否正在运行

时间:2017-07-18 11:58:17

标签: docker gitlab-ci

我正在使用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。

2 个答案:

答案 0 :(得分:1)

尝试将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

答案 1 :(得分:0)

尝试使用

  --docker-privileged \
  --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
  --docker-volumes /home/gitlab-runner/docker-cache \

设置了跑步者

您可以在设置赛跑者的服务器上签入/etc/gitlab-runner/config.toml