Gitlab Auto Deploy не может подключиться к Docker

У меня установлен Gitlab на Kubernetes с помощью Helm, и я пытаюсь заставить Auto DevOps работать, но я получаю следующую проблему из конвейера Auto DevOps:

      Executing "step_script" stage of the job script 00:01
$ if [[ -z "$CI_COMMIT_TAG" ]]; then # collapsed multi-line command
$ /build/build.sh
Logging in to GitLab Container Registry with CI credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Building Dockerfile-based application...
Attempting to pull a previously built image for use with --cache-from...
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
No previously cached image found. The docker build will proceed without using a cached image
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
Cleaning up file based variables 00:00
ERROR: Job failed: command terminated with exit code 1

Я читал о проблемах с Docker-in-Docker, но не смог заставить его работать.

Я также попытался установить переменную, но все равно получаю ту же ошибку.

      Cannot connect to the Docker daemon at tcp://docker:2375/. Is the docker daemon running?

Мои значения Gitlab Runner Helm выглядят так:

      gitlabUrl: https://gitlab.mydomain.com
privileged: true
rbac:
  create: true
runnerRegistrationToken: mytoken
runners:
  config: |
    [[runners]]
      executor = "docker"
      privileged = true
      environment = ["DOCKER_TLS_CERTDIR="]
      [runners.docker]
        tls_verify = false
        privileged = true

Я пробовал использовать Auto-DevOps .gitlab-ci.ymlшаблон .

Мой кластер интегрирован в Gitlab с использованием метода сертификата кластера и запуска простого CI / CD, например

      test_project:
  stage: test
  script:
  - npm run test

Работает отлично

Я пытался docker:18.09.7, docker:19.03.1 а также docker:latest (и соответствующие -dind услуги, с настройкой или без DOCKER_HOST: tcp://docker:2375/)

Я не знаю, что мне не хватает.

1 ответ

Решение

// Обновлять

Я решил эту проблему с помощью службы поддержки Gitlab. Моя проблема заключалась в том, что мне пришлось использовать [runners.kubernetes] config и установить privileged к trueтам. Я только устанавливал это [runners.docker] поскольку я думал, что Kubernetes Gitlab Runners будет такой конфиг.

Другие вопросы по тегам