Elastic Beanstalk с Docker, работающим на 64-разрядной версии Amazon Linux 2/3.2.2 и Dockerrun.aws.json v3

Может ли кто-нибудь указать мне правильную документацию Dockerrun.aws.json v3. Я много раз гуглил и не смог найти эту документацию v3.

Я пытаюсь выполнить развертывание нескольких контейнеров в эластичном beanstalk с помощью Docker работает на 64-битной версии Amazon Linux 2/3.2.2, но пока безуспешно.

Пока я использую формат Dockerrun.aws.json v2, который, похоже, не работает с этой платформой докеров.

{
  "AWSEBDockerrunVersion": 2,
  "containerDefinitions": [
    {
    "name": "simple-ui",
      "image": "my-image-located-in-ECR",
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 3000
        }
      ],
      "command": ["npm","start"]
    }
  ]
}

Ниже приведена ошибка, которую я вижу в журналах EB:

2020/12/09 18:55:34.954345 [ОШИБКА] Во время выполнения произошла ошибка команды [app-deploy] — [Специальное приложение для сборки Docker]. Останавливаться выполнение команды. Ошибка: не удалось разобрать файл Dockerrun.aws.json с ошибка json: неправильное использование тега строковой структуры, попытка демаршалирования значение без кавычек в int

09.12.2020 18:55:34.954356 [ИНФОРМАЦИЯ] Выполнение логики очистки 09.12.2020 18:55:34.954437 [ИНФОРМАЦИЯ] Ответ CommandService: {"status":"FAILURE","api_version":"1.0","результаты":[{"status":"FAILURE","msg":"Engine выполнение столкнулось с ошибка.","код возврата":1,"события":[{"msg":"Развертывание экземпляра: «Dockerrun.aws.json» в исходном пакете указывает на неподдерживаемый версия. Elastic Beanstalk поддерживает только версию 1 для приложений, не предназначенных для составления и версия 3 для составления приложения. Развертывание не удалось.","отметка времени":1607540134,"серьезность":"ОШИБКА"},{"msg":"Экземпляр развертывание не удалось. Подробнее см. 'eb-engine.log'.","timestamp":1607540134,"severity":"ERROR"}]}]}

Спасибо за вашу помощь заранее. Рабин

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
4 832
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Докер работает на 64-битной версии Amazon Linux 2/3.2.2

Вы используете Docker running on 64bit Amazon Linux 2/3.2.2, который, как пишет ошибка, используется только для Dockerrun.aws.json v1.

Чтобы использовать v2, вы должны использовать платформу EB:

Multi-container Docker running on 64bit Amazon Linux

спасибо, в конце концов я использовал многоконтейнерную платформу Docker с Dockerrun.aws.json v2. В документации AWS говорится, что 64-битная версия Amazon Linux 2 — это более новая версия платформы Docker, которая должна работать с docker-compose и Dockerrun.aws.json v3, но я не смог заставить ее работать с docker-compose и не смог найти документацию для v3. Я также продолжу и обновлю заголовок этого поста, чтобы он больше соответствовал этим вопросам и ответам, еще раз спасибо.

Rabin Limbu 14.12.2020 00:31

Платформа Docker с несколькими контейнерами устарела, и в ней отсутствуют многие функции, которые вы найдете в простой платформе jane Docker на EB. Однако документы чрезвычайно запутаны, как вы заметили выше. Ознакомьтесь с этим сообщением о переполнении стека для получения более подробной информации.

Как использовать докер с несколькими контейнерами в Elastic beanstalk с помощью Amazon linux 2?

С 64-битной версией Amazon Linux 2 для установки с несколькими контейнерами очень важно убедиться, что в elasticbeanstalk buildspec.yml есть эти два файловых артефакта.

artifacts:
    files: 
      - 'Dockerrun.aws.json'
      - 'docker-compose.yml'`

Вы можете убедиться, что файл находится в источнике, перейдя по ссылке:

Elastic Beanstalk > Приложения > {имя приложения} > Версии приложения

а затем щелкните источник последнего приложения, чтобы загрузить папку.

Я только отправлял Dockerrun.aws.json в EBS, а затем задавался вопросом, почему я получил ту же ошибку v1 v3, что и вы. Оглядываясь назад, можно понять, что нужен docker-compose.yml.

У меня были точно такие же опасения. Я изменил значение «AWSEBDockerrunVersion» в «Dockerrun.aws.json» версии 1 на «3», а затем развернул его.

Затем, как ни странно, появилось следующее сообщение.

Развертывание экземпляра: «Dockerrun.aws.json» в исходном пакете. указывает неподдерживаемую версию. Elastic Beanstalk поддерживает только версия 1 для приложения без сочинения и версия 3 для приложения для создания. развертывание не удалось.

Это означает, что вы можете просто использовать версию 1 json для Amazon Linux 2 AMI.

Другие вопросы по теме