Как перенести образ Docker из DockerHub в Elastic Beanstalk?

#amazon-web-services #docker #amazon-elastic-beanstalk #github-actions #dockerhub

#amazon-веб-сервисы #docker #amazon-elastic-beanstalk #github-действия #dockerhub

Вопрос:

Я хотел создать CI / CD с проектом на Github, используя действия GitHub. Использовал этот учебник:
https://www.blog .labouardy.com/elastic-beanstalk-docker-tips/
Но я все еще не понимаю, как elastic beanstalk вытащит изображение docker из DockerHub. Как это должно произойти?
И зачем нам нужен файл Dockerrun.aws.json и как его использовать?

Ответ №1:

Существуют различные подходы, которым можно следовать. Блоггер решил использовать Dockerrun.aws.json подход Dockerfile zipfile. Другими словами, каждый раз, когда CircleCI создает, он загружает zip-файл, содержащий Dockerrun.aws.json ( Dockerfile в этом случае на самом деле не нужен, поскольку он создает изображение удаленно, а также остальную часть приложения, поскольку он ничего не отображает).

Circleci выполняет следующие шаги:

  • создание образа
  • push-изображение
  • отправить zip-файл в AWS Elastic Beanstalk

AWS Elastic Beanstalk просто выполнит настройку внутри Dockerrun.aws.json и обновит с помощью тега ${CIRCLE_SHA1} .

Это Dockerrun.aws.json необходимо? Нет, вы также можете использовать docker-compose.yml файл.

Я предлагаю вам ознакомиться с документацией AWS по этой теме.

РЕДАКТИРОВАТЬ: ИМХО, его лучше использовать docker-compose.yml , поскольку он позволяет запускать контейнеры локально и проверять, что они в порядке, прежде чем обновлять приложение удаленно

Комментарии:

1. Большое вам спасибо за ваш ответ. Я хочу спросить вас еще об одной вещи. Как я могу проверить, что Elastic Beanstalk обновил следующий файл json? Я просто думаю, что мой Elastic Beanstalk просто игнорирует файл json, и я просто копирую в него zip-файл своего проекта через S3, а DockerHub остается нетронутым.

2. в качестве теста я бы сохранил только Docker.aws.json в zip-файле и посмотрел, как он будет себя вести. В любом случае вы можете проверить в консоли AWS, какая используется текущая версия.

3. Я это сделал. Только файл dockerrun.aws.json в zip -> «Не удалось развернуть приложение» в Elastic Beanstalk…

4. Я нашел учебник и сделал только то, что есть, но у меня все еще есть ошибка…. ((( youtube.com /…

5. Я попытался написать в dockerrun.aws.json другой образ из DockerHub, например consol / tomcat-8.0, и все работает! Но, когда я пишу pull для своего изображения, оно выдает ошибку… Ошибка: неудачное выполнение команды для идентификатора (ов) экземпляра ‘i-0dafdbbfc40f0edd2’. Прерывание операции. -> Не удалось развернуть приложение. -> Во время прерванного развертывания некоторые экземпляры могли развернуть новую версию приложения. Чтобы убедиться, что все экземпляры работают с одной и той же версией, повторно разверните соответствующую версию приложения.

Ответ №2:

Как сказал участник, вы можете использовать документацию AWS с полными шагами.