Docker Compose - лучшие команды для CI / CD? - PullRequest
0 голосов
/ 12 февраля 2019

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

Я придумал следующий файл (но мне не нравится тот факт, что мне нужно сначала остановить контейнеры, чтобы снова запустить все):

image: docker:latest

services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay2

stages:
  - test
  - deploy

test:
  stage: test
  tags:
    - development
  only:
    - develop
    - master
  cache:
    untracked: true
    policy: pull-push
    paths:
      - ./microservices/api/node_modules
      - ./microservices/client/node_modules
  script:
    - sudo docker-compose build --no-cache


step-deploy-production:
   stage: deploy
   only:
     - master
   script:
     - sudo docker image prune -f
     - sudo docker-compose build --no-cache
     - sudo docker-compose up -d --scale api=5 --scale client=5
   tags:
     - production
   when: manual

У меня разные модульные тесты внутри каждогоФайл Docker для каждого микросервиса, поэтому они запускаются во время команды сборки.

Кроме того, я запускаю этап test на одном компьютере и step-deploy-production на другом с использованием разных тегов gitlab-runners.

Кроме того, каковы преимущества наличия образов докеров каждого микросервиса в реестре докеров?(Сам Docker или реестр Gitlab).Извините, если вопрос звучит слишком просто ...

...