Развертывание образа Docker в AWS elastic beanstalk

#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 Спасибо, что сообщили мне. Я обновлю ответ.