Может ли кто-нибудь указать мне правильную документацию 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"}]}]}
Спасибо за вашу помощь заранее. Рабин
Докер работает на 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 с несколькими контейнерами устарела, и в ней отсутствуют многие функции, которые вы найдете в простой платформе 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.
спасибо, в конце концов я использовал многоконтейнерную платформу Docker с Dockerrun.aws.json v2. В документации AWS говорится, что 64-битная версия Amazon Linux 2 — это более новая версия платформы Docker, которая должна работать с docker-compose и Dockerrun.aws.json v3, но я не смог заставить ее работать с docker-compose и не смог найти документацию для v3. Я также продолжу и обновлю заголовок этого поста, чтобы он больше соответствовал этим вопросам и ответам, еще раз спасибо.