簡體   English   中英

Amazon Elastic Beanstalk中的錯誤Docker部署-Docker容器意外退出

[英]Error Docker deployment in Amazon Elastic Beanstalk - Docker container quit unexpectedly

我正在嘗試通過Elastic Beanstalk部署一個簡單的Docker容器,但我正在得到Docker容器意外退出錯誤。 不知道這里出了什么問題。 先謝謝您的幫助。

Dockerrun.aws.json:

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "janedoe/image",
    "Update": "true"
  },
  "Ports": [{
    "ContainerPort": "10010"
  }],
  "Volumes": [{
    "HostDirectory": "/home/ec2-user/testdocker",
    "ContainerDirectory": "/home/ec2-user/testdocker"
  }],
  "Logging": "/home/ec2-user/testlogs"
}

Dockerfile:

FROM centos:centos6
MAINTAINER janedoe

RUN echo“ test” EXPOSE 10010

日志:

[2016-03-22T22:56:35.034Z] INFO  [15895] - [Application       update/AppDeployStage0/AppDeployPreHook/03build.sh] : Completed activity.     
Result:
  centos6: Pulling from library/centos
  Digest: sha256:ec1bf627545d77d05270b3bbd32a9acca713189c58bc118f21abd17ff2629e3f
  Status: Image is up to date for centos:centos6
  Successfully pulled centos:centos6
  Sending build context to Docker daemon 4.608 kB
  Sending build context to Docker daemon 4.608 kB

  Step 1 : FROM centos:centos6
   ---> ed452988fb6e
  Step 2 : MAINTAINER janedoe
   ---> Running in 8bce7dfb7e59
   ---> 04de6fffed04
  Removing intermediate container 8bce7dfb7e59
  Step 3 : RUN echo "test"
   ---> Running in 36cef1d7c0e5
  test
   ---> c5b3d119184c
  Removing intermediate container 36cef1d7c0e5
  Step 4 : EXPOSE 10010
   ---> Running in ea07cbcc1136
   ---> 45f9b3fe6503
  Removing intermediate container ea07cbcc1136
  Successfully built 45f9b3fe6503
  Successfully built aws_beanstalk/staging-app
[2016-03-22T22:56:35.034Z] INFO  [15895] - [Application update/AppDeployStage0/AppDeployPreHook] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/hooks/appdeploy/pre.
[2016-03-22T22:56:35.035Z] INFO  [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild] : Starting activity...
[2016-03-22T22:56:35.550Z] INFO  [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Starting activity...
[2016-03-22T22:56:35.550Z] INFO  [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Completed activity.
[2016-03-22T22:56:35.587Z] INFO  [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild] : Completed activity.
[2016-03-22T22:56:35.588Z] INFO  [15895] - [Application update/AppDeployStage0/InfraCleanEbextension] : Starting activity...
[2016-03-22T22:56:36.107Z] INFO  [15895] - [Application update/AppDeployStage0/InfraCleanEbextension] : Completed activity. Result:
  Cleaned ebextensions subdirectories from .
[2016-03-22T22:56:36.107Z] INFO  [15895] - [Application update/AppDeployStage0] : Completed activity. Result:
  Application update - Command CMD-AppDeploy stage 0 completed
[2016-03-22T22:56:36.107Z] INFO  [15895] - [Application update/AppDeployStage1] : Starting activity...
[2016-03-22T22:56:36.108Z] INFO  [15895] - [Application update/AppDeployStage1/AppDeployEnactHook] : Starting activity...
[2016-03-22T22:56:36.108Z] INFO  [15895] - [Application update/AppDeployStage1/AppDeployEnactHook/00run.sh] : Starting activity...
[2016-03-22T22:56:44.157Z] INFO  [15895] - [Application update/AppDeployStage1/AppDeployEnactHook/00run.sh] : Activity execution failed, because: 268f1a5e43874771bc6039977e9eb048e704c0b94a5e100a2a9ffbf2d9d7f271
  Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Tue Mar 22 22:56:44 UTC 2016:. Check snapshot logs for details. (ElasticBeanstalk::ExternalInvocationError)
caused by: 268f1a5e43874771bc6039977e9eb048e704c0b94a5e100a2a9ffbf2d9d7f271
  Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Tue Mar 22 22:56:44 UTC 2016:. Check snapshot logs for details. (Executor::NonZeroExitStatus)

您應該在Dockerfile上使用CMD而不是RUN。

在Dockerfile中執行命令時,必須在RUN,CMD和ENTRYPOINT之間進行仔細選擇(從Docker參考中提取):

  • 跑:

RUN指令將在當前映像頂部的新層中執行任何命令,並提交結果。 生成的提交映像將用於Dockerfile中的下一步。

  • CMD:

CMD的主要目的是為執行中的容器提供默認值 這些默認值可以包含可執行文件,也可以省略可執行文件,在這種情況下,您還必須指定ENTRYPOINT指令。

  • 入口點:

ENTRYPOINT允許您配置將作為可執行文件運行的容器。

您應該深入閱讀Docker參考Docker最佳實踐

除此之外,如果您打算使用在Dockerrun.aws.json中定義的卷,請記住AWS文檔中的說明

使用Dockerfile時,請勿在Dockerrun.aws.json文件中指定Image鍵。 如果存在,Elastic Beanstalk將始終構建並使用Dockerfile中描述的映像。

這意味着您的Dockerrun.aws.json將被忽略,因此請當心。

如果您像這樣運行,則僅看到命令提示符輸出會更容易

eb create <replace_with_your_env_name/> -vvv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM