#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 с полными шагами.