Лучшая стратегия для развертывания Docker на Elastic Beanstalk
Я не уверен, что это лучшее место, чтобы задать этот вопрос. Но в течение нескольких дней я изо всех сил пытаюсь найти хороший процесс развертывания в Elastic Beanstalk, и я хочу узнать мнение людей с большим опытом в этом.
Сначала я планировал создать общий образ Docker и привязать к нему объем моего кода, а затем выполнить все необходимые установки при запуске контейнера.
Проблема заключалась в том, что установка всего заняла слишком много времени, и EB прерывает развертывание по таймауту. Я пытался увеличить время ожидания, но оно не сработало (понятия не имею, почему, локальный запуск контейнера не занимает много времени)
Итак, моей следующей идеей было создание образа со всем уже предустановленным. но для этого я бы собрал его раньше и отправил в реестр.
Хорошо, поэтому я решил, что использование ECR не будет проблемой для этого.
Я создал образ и отправил в реестр
Затем я создал Dockerrun.aws.json и указал его в своем хранилище.
После этого я продолжал получать ту же ошибку тайм-аута, что и раньше.
Несколько часов спустя я понял, что AWS продолжает создавать Dockerfile, даже имея Dockerrun в каталоге.
Я не понимаю, почему они это делают, но чтобы исправить это, мне пришлось переместить свой Dockerfile, чтобы он не отслеживался git, что действительно раздражает.
Тогда хорошо, это работает, но это дерьмовый рабочий процесс. Каждый раз, когда я обновляю что-то в своем Dockerfile, мне приходится все снова запускать, нажимая на ECR. И только после этого я могу развернуться.
И если кто-то хочет развернуть код, я должен отправить им Dockerfile вручную, потому что я не могу поместить его в git, иначе Elastic Beanstalk попытается его собрать.
Я уверен, что для этого есть более легкий рабочий процесс. Может ли кто-то указать лучшее направление в этом отношении?