0

Ich versuche, einen einfachen Docker Container durch Elastic Beanstalk bereitzustellen, aber ich bekomme Docker Container unerwarteter Fehler beendet. Ich bin mir nicht sicher, was hier falsch ist. Vielen Dank im Voraus für die Hilfe.Fehler Docker Bereitstellung in Amazon Elastic Beanstalk - Docker Container unerwartet beendet

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" SETZEN 10010

Log:

[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) 
+0

Haben Sie die Protokolle Ihrer Anwendungen (die von AWS EB in S3 verwaltet ein) überprüfen? – Sabmit

Antwort

2

sollten Sie verwenden ein CMD anstelle eines RUN auf Ihrer Dockerfile.

Wenn Befehle in einem Dockerfile ausführen, müssen Sie sorgfältig zwischen RUN, CMD und ENTRYPOINT (aus dem Docker reference extrahiert) wählen:

  • RUN:

Der Befehl RUN wird ausgeführt, jede Befehle in einer neuen Ebene über das aktuelle Bild und commit die Ergebnisse. Das resultierende committed Image wird für den nächsten Schritt in der Dockerfile verwendet.

  • CMD:

Der Hauptzweck eines CMD ist Standardwerte für eine Ausführung bereitzustellen Behälter. Diese Standardwerte können eine ausführbare Datei enthalten oder sie können die ausführbare Datei weglassen. In diesem Fall müssen Sie auch eine Anweisung ENTRYPOINT angeben.

  • ENTRYPOINT:

Ein ENTRYPOINT ermöglicht es Ihnen, einen Container zu konfigurieren, die als ausführbare Datei ausgeführt wird.

Sie ein tief in die Docker reference gelesen haben sollte und auf die Docker best practices

aus, dass abgesehen, wenn Sie die Datenträger, die Sie in Ihrem Dockerrun.aws.json, im Sinn haben, definiert verwenden wollen, was gesagt wird, im AWS documentation:

Sie das Bild Taste in der Dockerrun.aws.json Datei nicht angeben, wenn ein Dockerfile verwenden. .Elastic Beanstalk wird immer das in der Dockerdatei beschriebene Bild erstellen und verwenden, wenn eines vorhanden ist.

Das bedeutet, dass Ihr Dockerrun.aws.json ignoriert wird, also seien Sie vorsichtig.

0

Es ist einfacher, nur die Eingabeaufforderung Ausgabe zu sehen, ob Ihre Lauf es wie

eb create <replace_with_your_env_name/> -vvv 
Verwandte Themen