2017-02-22 35 views
0

Я развертываюсь мое узлом приложения на 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 
     } 
     ] 
    } 
    ] 
} 
+0

Видя ваш Dockerfile, вероятно, поможет. У меня есть несколько контейнеров докеров, работающих в AWS Beanstalk, и никогда не сталкивались с этой проблемой. CMD в файле Docker необходимо подобрать и запустить после развертывания контейнера. –

ответ

0

У меня есть один и тот же вопрос. Для меня оказалось, что точка входа действительно заботится о выполнении команды. Однако проблема остается, но может быть интересно посмотреть, как выглядит ваша точка входа при проверке изображения и при осмотре контейнера.

Смотрите также: What is the difference between CMD and ENTRYPOINT in a Dockerfile?