Непрерывное развертывание приложения Docker Compose для AWS / EC2 - PullRequest
0 голосов
/ 02 декабря 2018

Я пытался найти эффективный способ для непрерывного развертывания с помощью настройки Docker compose и хостинга AWS.

До сих пор я изучал CodeDeploy, корзины S3 и ECS.Мое приложение относительно небольшое, всего с 3 докерскими службами, приложением Django, NGINX и PostgreSQL.Мне не удалось найти надежную информацию для использования CodeDeploy с Docker compose, и из-за небольшого масштаба ECS кажется непрактичным.Я рассматривал S3 bucket, но это кажется не лучше, чем просто развертывание моего приложения с чем-то вроде git или scp.

Что является стандартным способом обработки развертывания настройки docker compose на AWS?Если возможно, я бы хотел использовать Bitbucket Pipelines или CircleCI для выполнения развертывания на этапе, запускаемом вручную после выполнения тестов.Но мне не удалось найти решение, которое позволило бы мне легко скопировать код (который находится в git-репо в производственной ветке и как я сейчас перенесу код на рабочий сервер).

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Я хотел бы добавить некоторые возможности в @gasc answer

  1. Было бы лучше, если бы вы создали шаблон облачной информации для развертывания ресурсов EC2 со всеми необходимыми группами, автоматического масштабирования и другихвещи.

  2. Затем создайте AMI с установленным Docker Comose или любой другой вещью, которая вам потребуется для вашей среды ec2.

  3. Тогда вы можетеиспользовать конвейер развертывания кода, здесь также aws предоставляет личный реестр контейнеров, возможно, вы захотите использовать этот

  4. Остальные шаги такие же, просто SCP-файл compose для команды EC2 launch docker-compose up ивсе готово.

Дайте мне знать, если вам нужна дополнительная помощь, я открыт для обсуждения

0 голосов
/ 03 декабря 2018

Я вижу, вы упомянули, что ECS может показаться непрактичным для такого маленького масштаба - по моему мнению, не обязательно.От вас потребуется переписать ваш docker-compose.yml в определения задач и сервисов, но так как сервисов не так много, это не займет у вас много времени.

0 голосов
/ 02 декабря 2018

В вашем случае я сделаю следующее:

1 - при необходимости обновите файл docker-compose.yml (или как вы его называли) до версии 3 или выше, чтобы использовать swarm *

4 - Разверните ваше приложение, используя swarm (docker stack deploy -c <your-docker-compose-file> your_app_name).Таким образом, вы можете легко обрабатывать и масштабировать обновления.

Обратите внимание, что если вы хотите использовать несколько узлов , вам нужно открыть в них несколько портов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...