Gitlab CI / CD, Docker Compose и приложение - PullRequest
0 голосов
/ 01 июня 2018

У меня есть к вам вопрос.

Я недавно попал в CI / CD, и хорошей отправной точкой для меня был Gitlab, так как они предоставляют простой интерфейс для этого, и я начал понимать, какие конвейеры иэтапы есть, но я столкнулся с некоторой противоречивой мыслью о том, что Gitlab CI работает в Docker.

Мое приложение работает в Docker Compose.Он содержит (бла-бла), что позволяет легко создавать и запускать контейнеры.Каждый сервис в Docker Compose создает отдельный Docker-контейнер, за исключением php-fpm, который может выполнять то, что называется «горизонтальным масштабированием», поэтому я могу масштабировать его позже.

Я буду использовать этот DockerСоздавая для производства, я в настоящее время использую его в разработке, и я хочу использовать его также в конвейерах CI / CD.

Однако .gitlab-ci.yml обеспечивает поддержку только одного изображения, поэтому янеобходимо собрать его и отправить в свой реестр Gitlab или в Docker Hub, чтобы позже использовать его в процессе CI / CD.

Как я могу создать службу Docker Compose какодно изображение, чтобы отправить его в реестр / докер, чтобы я мог вытащить его на диск CI / CD?

Мой проект содержит папку docker и docker-compose.yml.В папке docker у каждого сервиса есть свой отдельный каталог (php-fpm, nginx, mysql и т. Д.), И каждый (подготовьте себя) содержит Dockerfile с деталями сборки, особенно с php-fpm (deps и libs сильны).с этим)

У каждого сервиса в docker-compose.yml есть контекст сборки в каждой отдельной папке.

Если мне неясно, я могу предоставить дополнительную информацию (бесплатно)) * * тысяча двадцать-один

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Вам не нужно dind для запуска стека docker-compose.Вы можете запустить несколько команд docker-compose up.

acceptance_testing:
  stage: test
  before_script:
    - docker-compose -p $CI_JOB_ID up -d
  script:
    - docker-compose -p $CI_JOB_ID exec -T /run/your/test/suite.sh
  after_script:
    - docker-compose -p $CI_JOB_ID down -v --remove-orphans || true
0 голосов
/ 01 июня 2018

Я думаю, вы ищете что-то вроде этого

# .gitlab-ci.yml

image: docker

services:
  - docker:dind

build:
  script:
    - apk add --no-cache py-pip
    - pip install docker-compose
    - docker-compose up -d

Также полезно знать:

...