Я хочу выполнить сборку своего образа на общем бегунке и построить его в реестре gitlab.
затем я хочу получить этот образ на моем сервере, используя бегун на моем сервере с помощью оболочки executor.
но я сталкиваюсь с проблемой на моем исполнителе оболочки, когда я пытаюсь запустить команду docker, выдает мне эту ошибку
$ docker info
error during connect: Get http://docker:2375/v1.37/info: dial tcp: lookup docker on 172.31.0.2:53: no such host
вот мой gitlab-ci.yml
image: docker:stable
services:
- docker:dind
variables:
CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
stages:
- build
- deploy
before_script:
- docker info
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
build:
stage: build
script:
- docker pull $CONTAINER_IMAGE:latest || true
- docker build -f docker-images/web/Dockerfile --cache-from $CONTAINER_IMAGE:latest --tag $CONTAINER_IMAGE:$CI_COMMIT_SHA --tag $CONTAINER_IMAGE:latest .
- docker push $CONTAINER_IMAGE:$CI_COMMIT_SHA
- docker push $CONTAINER_IMAGE:latest
deploy:
stage: deploy
script:
- docker pull $CONTAINER_IMAGE:latest || true
tags:
- deploy
- shell
Я тестировал без этапа сборки и прокомментировал переменные DOCKER_HOST и сервисный докер: dind, и работает.Выполняйте команды docker и работайте хорошо.
Я новичок в этом, я думаю, проблема в том, что мой исполнитель оболочки пытается соединиться с хостом докера tcp: // docker: 2375, а не с моим механизмом докера.
Что я могу сделать ?.Я думал о вызове сценария оболочки и запуске команд докера для этого сценария.Но я бы хотел сделать это прямо на моем gitlab-ci.yml