Я довольно новичок в докере и gitlab-ci с бегуном докера.
Бегущий по докеру работает, и я в порядке, за исключением одной вещи. Похоже, что докер бегун не может видеть локально доступные изображения. Это означает, что мне, возможно, придется создать собственный реестр, если нет способа заставить команду docker проверить хост-докер.
То, что я пытаюсь достичь, это:
- Создайте
Dockerfile
и загрузите несколько других git-репозиториев в
- Создание нового образа докера на основе
Dockerfile
.
- Запустите новый докер-контейнер на хост-докере, который останется живым даже после того, как задание будет выполнено.
Другими словами, я пытаюсь сгенерировать образ докера и запустить / заменить существующий сервис в сервисе хоста 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.