Назад | Перейти на главную страницу

Лучшая стратегия развертывания Docker на Elastic Beanstalk

Я не уверен, что это лучшее место для постановки этого вопроса. Но в течение нескольких дней я изо всех сил пытаюсь найти хороший процесс развертывания для Elastic Beanstalk, и я хочу узнать мнение людей с большим опытом в этом.

Во-первых, я планировал создать общий образ Docker и привязать к нему свой объем кода, а затем выполнить все необходимые установки при запуске контейнера.

Проблема заключалась в том, что установка всего занимает слишком много времени, и EB прекращает развертывание по истечении времени ожидания. Я пытался увеличить тайм-аут, но это не сработало (не знаю почему, локальный запуск контейнера не занимает много времени)

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

Хорошо, поэтому я решил, что использование ECR для этого не будет проблемой.

Я создал образ и отправил его в реестр

Затем я создал Dockerrun.aws.json и указал его на свой репозиторий.

После этого я продолжал получать ту же ошибку тайм-аута, что и раньше.

Через несколько часов я понял, что AWS продолжает собирать Dockerfile, даже имея Dockerrun в каталоге.

Я не понимаю, почему они это делают, но чтобы исправить это, мне пришлось переместить свой Dockerfile, чтобы он не отслеживался git, что действительно раздражает.

Тогда ладно, это работает, но это дерьмовый рабочий процесс. Каждый раз, когда я что-то обновляю в своем Dockerfile, мне приходится запускать все заново, нажимать на ECR. И только после этого я могу развернуться.

И если кто-то еще хочет развернуть код, я должен отправить им Dockerfile вручную, потому что я не могу разместить его на git, иначе Elastic Beanstalk попытается его собрать.

Я уверен, что для этого есть более простой рабочий процесс. Может ли кто-нибудь указать лучшее направление в этом отношении?