Я развертываюсь мое узлом приложения на AWS ElasticBeanstalk с помощью опции multidocker. Приложение, похоже, успешно развертывается, однако я заметил, что приложение (внутри моего докера) находится не фактически работает.AWS ElasticBeanstalk Multidocker не создает задачу ECS с правильным Cmd
Когда я docker inspect <container_id>
бегущий контейнер, см., Что "Cmd": null
. Если я проверить ECS определение задач, созданный Beanstalk, я также вижу "command": null"
/
Однако, если я запускаю контейнер вручную (через docker run -d myimage:latest
), я вижу "Cmd": ["node", "server.js"]
и приложение служит правильно. Это правильный CMD
, который включен в мой файл Docker.
Почему мое определение задачи ECS не правильно считывает CMD
с моего изображения докеров? Я должен добавить команду в мой Dockerrun.aws.json
? Я не мог найти никакой документации для этого.
Dockerrun.aws.json:
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "node-app",
"host": {
"sourcePath": "/var/app/current/node-app"
}
}
],
"containerDefinitions": [
{
"name": "node-app",
"image": "1234565.dkr.ecr.us-east-1.amazonaws.com/my-node-app:testing",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 3000,
"containerPort": 3000
}
]
}
]
}
Видя ваш Dockerfile, вероятно, поможет. У меня есть несколько контейнеров докеров, работающих в AWS Beanstalk, и никогда не сталкивались с этой проблемой. CMD в файле Docker необходимо подобрать и запустить после развертывания контейнера. –