В 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: я могу отправить изображение вручную без каких-либо проблем
1 ответ
Согласно комментарию, это просто проблема GitLab. Нет никакой гарантии, что с бесплатным раннером он всегда будет работать. В этом случае docker deamon недоступен, поэтому ваша сборка будет продолжать давать сбой до тех пор, пока бегун не будет перезапущен, когда GitLab обнаружит ошибку.
Обратите внимание, это мое предположение, учитывая, что часто ошибка возникает, а затем через несколько часов она исчезает. Как вы также можете видеть, мои Форумы Gitlab Тема не получила ответа, поэтому я боюсь, что не думаю, что вы сможете это исправить. Если критическая задача, запустите свой собственный бегун, чтобы вы могли перезапустить его в случае сбоя.
Похожие вопросы
Новые вопросы
docker
Docker - это инструмент для создания и запуска контейнеров. Вопросы, касающиеся Dockerfiles, операций и архитектуры принимаются. Вопросы о запуске Docker в производстве могут найти лучшие ответы на ServerFault (https://serverfault.com/). Тег docker редко используется один и часто в паре с другими тегами, такими как docker-compose и kubernetes.