【问题标题】:Gitlab Auto Deploy failing to connect to DockerGitlab Auto Deploy 无法连接到 Docker
【发布时间】:2021-11-08 14:02:43
【问题描述】:

我已经使用 Helm 在 Kubernetes 上安装了 Gitlab,并尝试让 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 的问题,但我无法让它工作。

我也尝试设置DOCKER_HOST: tcp://docker:2375/ 变量,但我仍然得到同样的错误。

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 template

我的集群使用集群证书方法集成到 Gitlab 中,并像运行简单的 CI/CD 一样

test_project:
  stage: test
  script:
  - npm run test

工作正常

我尝试了docker:18.09.7docker:19.03.1docker:latest(以及相应的-dind 服务,无论是否设置DOCKER_HOST: tcp://docker:2375/

我不知道我错过了什么。

【问题讨论】:

    标签: gitlab-ci gitlab-ci-runner docker-in-docker gitlab-autodevops


    【解决方案1】:

    // 更新

    我在 Gitlab 支持的帮助下解决了这个问题。 我的问题是我必须使用[runners.kubernetes] 配置并将privileged 设置为true。我只是在[runners.docker] 中设置它,因为我认为 Kubernetes Gitlab Runners 会这样配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      相关资源
      最近更新 更多