#amazon-web-services #spring-boot #docker #amazon-elastic-beanstalk
#amazon-веб-сервисы #весенняя загрузка #docker #amazon-elastic-beanstalk
Вопрос:
Я создал приложение Spring boot, следуя этому руководству. Следуя руководству, мне удалось настроить свое приложение с помощью команды:
docker-compose up
Мой файл docker-compose.yml:
version: '3'
services:
app:
build: .
volumes:
- .:/app
- ~/.m2:/root/.m2
working_dir: /app
ports:
- 8080:8080
command: mvn clean spring-boot:run
Когда я впоследствии проверяю наличие образов docker, я вижу новый образ для приложения. Теперь я хочу развернуть это приложение в AWS elastic beanstalk. При создании среды с платформой docker что мне нужно загрузить для кода приложения? Как мне загрузить свой образ docker в aws? Я не могу найти хорошее руководство о том, как развернуть докеризованное приложение / образ в aws подобным образом. Я новичок в docker, поэтому буду признателен за любую помощь!
Ответ №1:
Обновление октябрь 2020
Docker-compose теперь официально поддерживается EB:
Оригинальный ответ ниже
EB не поддерживает docker-compose. Чтобы создать свой контейнер (это настройка с одним или несколькими соединителями?) вы должны использовать либо одно-, либо многоконтейнерные электронные платформы.
В обоих случаях вам необходимо перевести свой docker-compose.yml
в Dockerrun.aws.json. Файл имеет разную форму в зависимости от того, используете ли вы установку с одним или несколькими контейнерами.
Как мне загрузить свой образ docker в aws?
Если это единственная настройка EB, вы можете просто предоставить свой Dockerfile
EB, и он позаботится обо всем за вас. Для многопользовательских EB вы можете хранить свои изображения в общедоступном репозитории, таком как dockerhub, или в частном репозитории, таком как ECR.
Чтобы перевести свой docker-compose.yml
файл в Dockerrun.aws.json
, вы можете попробовать использовать инструмент преобразования контейнера. Это может быть полезно, хотя вам, скорее всего, потребуется вручную внести дополнительные изменения в созданный файл.
Комментарии:
1. Спасибо! это многое прояснило для меня! Из моего файла docker-compose.yml (я обновил свой вопрос, включив файл), насколько я понимаю, это настройка одного контейнера. Я прав? Или сервисы — это нечто иное, чем контейнер? В случае одиночной настройки EB вы говорите, что я могу просто предоставить свой файл Dockerfile в EB, как именно мне это сделать? Нужно ли мне делать это в EB cli?
2. @AlfieDanger Привет. Нет проблем. Рад, что это было полезно 🙂 Да, вы можете просто использовать свой файл Dockerfile. EB создаст образ. И да, вы также можете использовать eb cli для этого. Подробности здесь .
3. Этот ответ больше не является точным. Начиная с 2020-10-07, Elastic Beanstalk официально поддерживает многоконтейнерные настройки с использованием файла docker-compose.yml . (Это просто сгорело при нашем последнем развертывании, поскольку мы использовали docker-compose для локального тестирования разработки, но только Dockerfile в производстве.)
4. @beporter Спасибо, что сообщили мне. Я обновлю ответ.