Докер в производстве с инструментом CI - PullRequest
0 голосов
/ 02 июня 2019

Каков наилучший способ запуска докеризованного приложения в производстве с использованием инструмента CI?Я использую docker-compose в разработке, но теперь мне нужен рабочий процесс для производства, включая обновление моих служб.

На данный момент у меня есть одна версионная папка, содержащая все службы, необходимые приложению для запуска (каждая службанаходится в своей собственной подпапке и имеет файл Docker).Проблема, например, в том, что если я обновлю серверную часть, я хочу развернуть и перезапустить только эту службу, а не все службы.

Приложение со своими службами будет работать только на одной машине.Нет необходимости в репликах или нескольких узлах.

Любой ресурс, дающий подробное объяснение решения, будет очень признателен.

Спасибо

1 Ответ

0 голосов
/ 03 июня 2019

Я рекомендую использовать drone для управления рабочим процессом CI.

Полагаю, все ваши сервисы контролируются git-репо. Затем следуйте указаниям GitFlow , создайте разные ветки для каждого сервиса.

Когда вы закончите обновление, добавьте коммит в ветку service/A, затем создайте PR для ветки dev. В настоящее время плагин drone docker создаст ваш образ Docker и отправит образ в реестр Docker. Пример конфигурации дронов будет выглядеть так:

steps:  
  - name: build-image 
    image: plugins/docker  
    settings:  
      repo: your-image-repo-on-docker-registry
      username:   
      password:     
    when:  
      branch: dev  
      event: pull_request
  - name: deploy-container
    image: appleboy/drone-scp
    settings:
      host: yourserver.com
      username: ubuntu
      password: ssh_password
      port: 22
      script:
      - docker-compose pull your-image-repo-on-docker-registry
      - docker-compose up
...