Развернуть образ из реестра контейнеров EC2 в учетные данные Elastic Beanstalk?

Учитывая настройку:

Чтобы развернуть мое приложение, воспользуйтесь руководством по одному контейнеру. говорит сделать файл Dockerrun.aws.json.

В руководстве Elastic Beanstalk также говорится что для использования изображений из (любого) частного репозитория необходимо добавить файл учетных данных (с токеном аутентификации и адресом электронной почты) в корзину S3.

Аутентификация в реестре контейнеров EC2 включает запрос токена, который docker login можно использовать, но она действительна только в течение 12 часов.

Итак, теоретически я могу следовать руководству Elastic Beanstalk и использовать команду aws ecr get-login, docker login ..., чтобы заставить Docker создать нужный мне файл конфигурации, преобразовать его в файл .dockercfg и поместить на S3.

Если я затем загружу свой файл Dockerrun.aws.json в качестве новой версии приложения в Elastic Beanstalk, я смогу развернуть его прямо сейчас, если не прошло 12 часов.

Меня беспокоит, что произойдет после этих 12 часов? Если Elastic Beanstalk потребуется автоматически масштабировать мое приложение и запустить больше экземпляров, попытка использовать учетные данные, хранящиеся в S3, завершится ошибкой. Или, если я понимаю, что мне нужно вернуться к предыдущей версии моего приложения, я не могу просто сделать это через список прошлых версий приложения Elastic Beanstalk; Мне нужно быть на машине с установленным интерфейсом командной строки AWS и снова танцевать aws ecr get-login, docker login ..., загружать в S3?

Есть ли менее хрупкий способ настроить аутентификацию между Elastic Beanstalk и реестром контейнеров EC2, чтобы 12-часовой тайм-аут не был проблемой?


person MidnightLightning    schedule 16.06.2016    source источник
comment
кажется возможным в среде mutli docker beanstalk, но не видел никакой документации для сред с одним докером.   -  person Shibashis    schedule 16.06.2016
comment
Развертывание Multi Container Elastic Beanstalk использует формат версии 2 файла Dockerrun.aws.json, но эта версия также требует, чтобы параметр authentication указывал на статический файл конфигурации, размещенный на S3, поэтому не знаете, как это решает проблему?   -  person MidnightLightning    schedule 16.06.2016
comment
Вы смотрели часто задаваемые вопросы в ECR? проверьте вопрос Does Amazon ECR work with AWS Elastic Beanstalk?.aws.amazon.com/ecr/faqs   -  person Shibashis    schedule 16.06.2016


Ответы (1)


Просто вставьте соответствующий ответ на часто задаваемые вопросы ECR здесь (выделение добавлено):

Все, что вам нужно сделать, это указать репозиторий Amazon ECR в вашей конфигурации Dockerrun.aws.json и привязать политику AmazonEC2ContainerRegistryReadOnly к вашей роли экземпляра контейнера.

person dorianm    schedule 10.04.2017
comment
Чего они не говорят вам, так это того, что вам также необходимо убедиться, что репозиторий ECR имеет заявление о разрешении, которое позволяет вашей роли экземпляра (обычно aws-elasticbeanstalk-ec2-role) получить к нему доступ. - person AlexanderF; 11.04.2018