Разверните Docker-контейнер с помощью gitlab ci docker-in-docker setup - PullRequest
0 голосов
/ 16 декабря 2018

Я сейчас пытаюсь настроить gitlab ci pipe.Я выбрал с настройкой Docker-in-Docker .Я получил свой ci конвейер для сборки и отправки образа докера в реестр gitlab, но я не могу развернуть его, используя следующую конфигурацию:

.gitlab-ci.yml

image: docker:stable
services:
- docker:dind

stages:
- build
- deploy

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_DRIVER: overlay2
  TEST_IMAGE: registry.gitlab.com/user/repo.nl:$CI_COMMIT_REF_SLUG
  RELEASE_IMAGE: registry.gitlab.com/user/repo.nl:release

before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker info

build:
  stage: build
  tags:
  - build
  script:
  - docker build --pull -t $TEST_IMAGE .
  - docker push $TEST_IMAGE
  only:
  - branches

deploy:
  stage: deploy
  tags:
  - deploy
  script:
  - docker pull $TEST_IMAGE
  - docker tag $TEST_IMAGE $RELEASE_IMAGE
  - docker push $RELEASE_IMAGE
  - docker run -d --name "review-$CI_COMMIT_REF_SLUG" -p "80:80" $RELEASE_IMAGE
  only:
  - master
  when: manual

Когда я запускаюдействие развертывания Я действительно получаю следующий отзыв в своем журнале, но когда я иду проверить сервер, контейнер не запущен.

$ docker run -d --name "review-$CI_COMMIT_REF_SLUG" -p "80:80" $RELEASE_IMAGE
7bd109a8855e985cc751be2eaa284e78ac63a956b08ed8b03d906300a695a375
Job succeeded

Понятия не имею, что я здесь забываю.Правильно ли ожидать, что этот метод будет правильным для развертывания контейнеров?Что я пропускаю / делаю неправильно?

tldr : Хотите развернуть образы в производство, используя gitlab ci и настройку docker-in-docker, задание выполнено успешно, но контейнера нет.Цель состоит в том, чтобы после развертывания на хосте работал работающий контейнер.

1 Ответ

0 голосов
/ 16 декабря 2018

Обнаружил, что мне нужно включить докер-сокет в конфигурацию gitlab-runner, а не только иметь его в контейнере.Добавив --docker-volumes '/var/run/docker.sock:/var/run/docker.sock' и удалив DOCKER_HOST=tcp://docker:2375, я смог подключиться к докеру в моей хост-системе и порождать одноуровневые контейнеры.

...