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

问题描述 投票:7回答:2

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

docker gitlab-ci
2个回答
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

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

© www.soinside.com 2019 - 2024. All rights reserved.