无法连接到 tcp://docker:2375 处的 Docker 守护程序。docker 守护进程是否正在运行?在 docker push 通过 Gitlab CI

Jul*_*oro 5 gitlab docker gitlab-ci

在 Gitlab CI 中,当我想推送我的图像时,我得到:

Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?
Run Code Online (Sandbox Code Playgroud)

这是代码:

docker-push:
  stage: publish
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - *inject-gopath
    - docker login -u gitlab-ci-token -p $GITLAB_PERSONAL_ACCESS_TOKEN $REGISTRY_URL
    # $CI_BUILD_TOKEN
  script:
    - docker build --build-arg GITLAB_TOKEN=${GITLAB_PERSONAL_ACCESS_TOKEN} --target=prod -t $REGISTRY_PACKAGE_API_NAME:$CI_BUILD_ID .
    - docker build --build-arg GITLAB_TOKEN=${GITLAB_PERSONAL_ACCESS_TOKEN} --target=prod -t $REGISTRY_PACKAGE_API_NAME:latest .
    - docker push $REGISTRY_PACKAGE_API_NAME:$CI_BUILD_ID
    - docker push $REGISTRY_PACKAGE_API_NAME:latest
Run Code Online (Sandbox Code Playgroud)

这是输出:

Pulling docker image docker:stable ...
Using docker image sha256:23fb2c9b38b59433ea1913eafa12d2e15651ca0d08819dc7067d27d8f92e0428 for docker:stable ...
Running on runner-wmKFtEwx-project-7124308-concurrent-0 via ubuntu...
Fetching changes...
Removing release/
HEAD is now at 9c4894a Merge branch '5-supprimer-les-threads' into 'master'
Checking out 9c4894af as master...
Skipping Git submodules setup
Downloading artifacts for build (324707453)...
Downloading artifacts from coordinator... ok        id=324707453 responseStatus=200 OK token=SVLY__Jy
$ mkdir -p $(dirname ${PACKAGE_PATH}) && ln -s ${CI_PROJECT_DIR} ${PACKAGE_PATH} && cd ${PACKAGE_PATH}
$ docker login -u gitlab-ci-token -p $GITLAB_PERSONAL_ACCESS_TOKEN $REGISTRY_URL
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 build --build-arg GITLAB_TOKEN=${GITLAB_PERSONAL_ACCESS_TOKEN} --target=prod -t $REGISTRY_PACKAGE_API_NAME:$CI_BUILD_ID .
Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)

奇怪的是我在图像中docker-stable,所以我应该有可用的 docker,而且上一步docker login运行良好......

这是来自 Gitlab 的错误,还是我做错了什么?

PD:我正在使用 Gitlab.com

PD2:我可以手动推送图像而没有任何问题

Biz*_*ate 2

根据评论,这只是一个 GitLab 问题。对于自由运行者,不能保证它总是有效。在这种情况下,docker 守护进程不可用,因此您的构建将持续失败,直到 GitLab 检测到错误时重新启动运行器。

请注意,这是我的假设,因为错误经常出现,然后几个小时后它就消失了。正如您所看到的,我的Gitlab 论坛主题没有收到任何人的回复,因此我担心您无法解决此问题。如果任务关键,则运行您自己的运行程序,以便您可以在失败时重新启动它