В Gitlab CI, когда я хочу отправить свое изображение, я получаю:

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

Вот код:

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

Вот результат:

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

Странно то, что я нахожусь в образе docker-stable, поэтому у меня должен быть докер, и предыдущий шаг docker login работает хорошо ...

Это ошибка Gitlab или я что-то делаю не так?

ПД: Я использую Gitlab.com

PD2: я могу отправить изображение вручную без каких-либо проблем

5
Juliatzin 18 Окт 2019 в 12:47

1 ответ

Лучший ответ

Согласно комментарию, это просто проблема GitLab. Нет никакой гарантии, что с бесплатным раннером он всегда будет работать. В этом случае docker deamon недоступен, поэтому ваша сборка будет продолжать давать сбой до тех пор, пока бегун не будет перезапущен, когда GitLab обнаружит ошибку.

Обратите внимание, это мое предположение, учитывая, что часто ошибка возникает, а затем через несколько часов она исчезает. Как вы также можете видеть, мои Форумы Gitlab Тема не получила ответа, поэтому я боюсь, что не думаю, что вы сможете это исправить. Если критическая задача, запустите свой собственный бегун, чтобы вы могли перезапустить его в случае сбоя.

2
Bizmate 10 Янв 2020 в 14:26