【问题标题】:Elastic Beanstalk with Docker deployment failureElastic Beanstalk 与 Docker 部署失败
【发布时间】:2015-12-17 14:52:01
【问题描述】:

我正在尝试使用 docker 和弹性 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"
}

我使用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.

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.

看来启动脚本有问题。如果我 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.

快照日志是否与var/log/eb-activity.log 中的不同?知道发生了什么/如何进一步调试?

【问题讨论】:

    标签: amazon-web-services amazon-s3 docker amazon-elastic-beanstalk


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你想看看

      /var/log/eb-docker/containers/eb-current-app/unexpected-quit.log
      

      eb logs --all 或使用eb ssh 下载的包中。此日志文件将包含应用程序崩溃前的标准输出和标准错误。

      【讨论】:

        【解决方案3】:

        在我的例子中,unexpected-quit.log 是空的,/var/log/ 中的其他日志文件没有帮助。

        所以我通过在服务器上手动运行镜像,找出了容器崩溃的原因。

        [ec2-user@ip-xxx-xxx-xxx-xxx ~]$ nano Dockerfile # or clone the entire project
        [ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo docker build -t test .
        [ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo docker run --rm test
        Exception in thread "main" …
        

        我修复了这个异常,重新部署了一个新版本,现在容器启动没有问题。

        【讨论】:

          【解决方案4】:

          在我的例子中,我使用eb ssh 连接到 ec2 实例并查看了我的服务器日志。这是一个应用程序错误。与 AWS 无关。修复。再次尝试,它正在工作!

          【讨论】:

            猜你喜欢
            • 2017-01-29
            • 2015-12-15
            • 2016-06-19
            • 1970-01-01
            • 2016-09-20
            • 2017-01-24
            • 2021-08-30
            • 2020-10-08
            • 2021-03-02
            相关资源
            最近更新 更多