具有Docker部署失败的Elastic Beanstalk

jva*_*ans 6 amazon-s3 amazon-web-services docker amazon-elastic-beanstalk

我正在尝试使用docker和elastic beanstalk部署我的应用程序.我的Dockerrun.aws.json文件看起来像

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "jvans/maven_weekly",
    "Update": "true"
  },
  "Ports": [
    {
    "ContainerPort": "5000"
  }],
  "Volumes": [
    {
      "HostDirectory": "/Users/jamesvanneman/Code/maven_weekly/maven_weekly",
      "ContainerDirectory": "/maven_weekly"
  }
  ],
  "Logging": "/var/log/nginx"
}
Run Code Online (Sandbox Code Playgroud)

我创建了这个应用程序,eb create当我运行时,eb deploy我得到了

Docker container quit unexpectedly after launch: Docker container quit 

unexpectedly on Mon Sep 21 01:15:12 UTC 2015:. Check snapshot logs for details. 
Hook /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
Run Code Online (Sandbox Code Playgroud)

var/log/eb-activity.log我看到以下错误:

  Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Mon Sep 21 01:08:52 UTC 2015:. Check snapshot logs for details. (ElasticBeanstalk::ExternalInvocationError)
caused by: 83ea9b7f9a069eeb8351fef7aaedb8374f7dfe300a5e0aaeba0fe17600583175
[2015-09-21T01:08:52.205Z] INFO  [2246]  - [Application deployment/StartupStage1/AppDeployEnactHook/00run.sh] : Activity failed.
Run Code Online (Sandbox Code Playgroud)

因此,启动脚本似乎存在问题.如果我ssh到容器并尝试手动运行它我真的没有从错误消息获得任何额外的帮助.

eb ssh

sudo /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh

Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Mon Sep 21 01:34:52 UTC 2015:. Check snapshot logs for details.
Msg: Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Mon Sep 21 01:34:52 UTC 2015:. Check snapshot logs for details.
Run Code Online (Sandbox Code Playgroud)

快照记录的内容是否与内容不同var/log/eb-activity.log?任何想法发生了什么/如何进一步调试?

Tal*_*Tal 10

Docker转储存储在主机框中/var/log/eb-docker/containers/.
去那里,你会发现docker启动崩溃日志,它应该指出问题的根本原因.


Rad*_*ugh 6

你想看看

/var/log/eb-docker/containers/eb-current-app/unexpected-quit.log
Run Code Online (Sandbox Code Playgroud)

在通过eb logs --all或使用下载的捆绑软件中eb ssh。该日志文件在崩溃前将具有您的应用程序的stdout和stderr。