2

我们正在使用自托管的 Gitlab 和 Runner,并尝试使用 dind 来运行 CI/CD 构建,但我的所有工作都失败并出现以下错误 -

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

我的 ci 文件 -

build:
  image: docker:18.09
  stage: build
  services:
    - docker:18.09-dind
  
  variables:
  # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""

  script:
    - echo $CI_REGISTRY
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker info

跑步者配置 -

[[runners]]
  name = "Docker Runner"
  url = "https://gitlab.systems.co.uk/"
  token = "fgtgervsdasdsdds"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "docker:19.03-dind-rootless"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache", "/app/log/docker-rootless/docker.sock:/var/run/docker.sock", "/srv/gitlab-runner/config/certs:/etc/gitlab-runner/certs"]
    shm_size = 0

错误输出 -

$ echo $CI_REGISTRY
registry.gitlab.systems.co.uk
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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**
$ docker info
Cannot connect to the Docker daemon at tcp://docker:2375/. Is the docker daemon running?
Cleaning up file based variables
00:01
ERROR: Job failed: exit code 1

如果您在上面看到我的登录成功到注册表,但是当我登录docker info失败时。

任何想法和线索这里有什么问题?

注意 - 由于安全问题,我正在使用无根 docker

4

0 回答 0