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

10-16 18:41
查看更多