为什么 Gitlab 运行程序会抛出“Docker 守护进程正在运行吗?”

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

我希望获得有关 Gitlab 运行程序实例的一些帮助 抛出“无法连接到位于 tcp://localhost:2375 的 Docker 守护进程。docker 守护进程正在运行吗?”

我的

gitlab-ci.yml

image: docker:18.09-dind

variables:
  DOCKER_HOST: tcp://localhost:2375
  DOCKER_DRIVER: overlay2


stages:
  - build
  - test

before_script:
    - export REACT_APP_USERS_SERVICE_URL=http://127.0.0.1

job:
  stage: build
  script:
    - apk add --update --no-cache gcc g++ make python2 python2-dev py-pip python3-dev curl
    - curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    - chmod +x /usr/local/bin/docker-compose
    - docker-compose up -d --build
    - docker logs testdriven_e2e:latest -f

after_script:
    - docker-compose down

错误输出:

(32/34) Installing pkgconf (1.6.1-r1)
(33/34) Installing python2-dev (2.7.18-r0)
(34/34) Installing python3-dev (3.7.10-r0)
Executing busybox-1.30.1-r2.trigger
OK: 339 MiB in 73 packages
$ curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   664  100   664    0     0   2699      0 --:--:-- --:--:-- --:--:--  2688
100 23.5M  100 23.5M    0     0  3546k      0  0:00:06  0:00:06 --:--:-- 4406k
$ chmod +x /usr/local/bin/docker-compose
$ docker-compose up -d --build
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
ERROR: Job failed: exit code 1

FATAL: exit code 1  

提前感谢您的任何建议。

docker gitlab gitlab-ci gitlab-ci-runner
2个回答
8
投票

必须添加docker-in-docker服务,然后将守护进程主机设置为主机名

docker
(就是dind服务的主机名)

image: docker

services:
  - docker:dind

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
  DOCKER_DRIVER: overlay2

2
投票

总结

@sytech ans 帮助了我。但如果您仍然没有问题,请检查以下事项

  1. 当您注册 gitlab runner 时,请确保您有
     --docker-privileged

示例:

sudo gitlab-runner register -n --url https://your_gitlab.com --registration-token project_token --executor docker --description "Deployment Runner" --docker-image "docker:stable" --tag-list deployment --docker-privileged
  1. 授予 Gitlab-runner 运行 docker 命令的权限
sudo usermod -aG docker gitlab-runner
  1. 正如 @sytech 提到的,还在您的 yml 文件中添加以下代码
variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
  DOCKER_DRIVER: overlay2

如果您仍有问题,请告诉我

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