Как развернуть проект с помощью докера с gitlab-ci - PullRequest
0 голосов
/ 05 сентября 2018

Я довольно новичок в докере и gitlab-ci с бегуном докера.

Бегущий по докеру работает, и я в порядке, за исключением одной вещи. Похоже, что докер бегун не может видеть локально доступные изображения. Это означает, что мне, возможно, придется создать собственный реестр, если нет способа заставить команду docker проверить хост-докер.

То, что я пытаюсь достичь, это:

  1. Создайте Dockerfile и загрузите несколько других git-репозиториев в
  2. Создание нового образа докера на основе Dockerfile.
  3. Запустите новый докер-контейнер на хост-докере, который останется живым даже после того, как задание будет выполнено.

Другими словами, я пытаюсь сгенерировать образ докера и запустить / заменить существующий сервис в сервисе хоста dockerd.

Сейчас я пришел с этим, но он не работает, поскольку данные не передаются с одной работы на другую. И даже если бы работа по сборке работала, я сомневаюсь, что созданная мной докерная служба будет доступна из внешнего мира.

stages:
    - test
    - prepare
    - build

# Build the Dockerfile 
prepare_script:
  stage: prepare
  image: debian:stretch
  script:

    - apt-get update
    - apt-get install -y git python3
    - python3 prepare_project.py

# Build and deploy the docker image
build:
  variables:
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
  image: docker:stable
  services:
    - docker:dind
  stage: build
  script:
    - docker build -t my-project .
    - docker run --add-host db:172.17.42.1 -d --name my-project-inst --restart always -p 8069:8069 myproject

Как я могу использовать gitlab-ci для автоматического развертывания образов Docker в службе Docker хоста?

Проблема, которую я пытаюсь решить, состоит в том, чтобы сгенерировать файл docker, чтобы выборка git-репозиториев и подмодулей могла выполняться динамически, без необходимости вручную изменять файлы Dockerfiles.

...