Elastic Beanstalk-Dockerfehler

8

Ich bekomme einen kryptischen Fehler, wenn ich versuche, die Konfiguration einer Docker-Anwendung für einen einzelnen Container zu aktualisieren. Hat jemand eine Vorstellung davon, was das verursachen könnte oder wie man es austesten könnte?

%Vor%     
RussSchick 18.07.2015, 21:06
quelle

4 Antworten

8

Ich habe das schon einmal gesehen und glaube, dass dies passiert, wenn der Docker-Container nicht erstellt werden konnte. Der fehlgeschlagene Befehl ist derjenige, der den Container ausführt, und er schlägt fehl (IIRC), weil er den Container aus dem vorherigen Build-Schritt nicht finden kann. Dinge zu versuchen:

  • Wird der Docker-Container erfolgreich mit eb local erstellt? ( Ссылка )
  • Versuchen Sie, eb-activity.log auf Fehler während des Build-Prozesses
  • zu überprüfen
  • Beenden Sie die EC2-Instanz, oder erstellen Sie die EB-Umgebung neu (manchmal kommt es bei kleineren Instanzen zu Fehlern, die den Speicherausbau verhindern)
SMX 20.07.2015 17:31
quelle
4

Dies kann passieren, wenn Ihre Anwendung beim ersten Deployment nicht erfolgreich gestartet wird. Gerade angefangen, dieses Problem selbst zu haben.

Sehen Sie sich /var/log/eb-activity.log auf Ihrem Server an ... Sie sehen vielleicht etwas wie:

  

[2015-07-23T00: 19: 11.015Z] INFO [2624] - [CMD-Startup / StartupStage1 / AppDeployEnactHook / 00run.sh]: Startaktivität ...

     

[2015-07-23T00: 19: 17.506Z] INFO [2624] - [CMD-Startup / StartupStage1 / AppDeployEnactHook / 00run.sh]: Aktivitätsausführung fehlgeschlagen, weil: jq: error: Kann nicht über Null iterieren     aca80d7accfe4800ff04992e2f89a1e05689423d286deee31b53bf470ce89afb     Docker-Container wurde nach dem Start unerwartet beendet: bleBeanFactory.java:942)           at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:533)           ... 93 mehr. Überprüfen Sie die Snapshot-Protokolle auf Details. (ElasticBeanstalk :: ExternalInvocationError)   verursacht durch: jq: error: Kann nicht über Null iterieren     aca80d7accfe4800ff04992e2f89a1e05689423d286deee31b53bf470ce89afb     Docker-Container wurde nach dem Start unerwartet beendet: bleBeanFactory.java:942)           at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:533)           ... 93 mehr. Überprüfen Sie die Snapshot-Protokolle auf Details. (Executor :: NonZeroExitStatus)

     

[2015-07-23T00: 19: 17.506Z] INFO [2624] - [CMD-Startup / StartupStage1 / AppDeployEnactHook / 00run.sh]: Aktivität fehlgeschlagen.

     

[2015-07-23T00: 19: 17.507Z] INFO [2624] - [CMD-Startup / StartupStage1 / AppDeployEnactHook]: Aktivität fehlgeschlagen.

     

[2015-07-23T00: 19: 17.507Z] INFO [2624] - [CMD-Startup / StartupStage1]: Aktivität fehlgeschlagen.

     

[2015-07-23T00: 19: 17.507Z] INFO [2624] - [CMD-Startup]: Abgeschlossene Aktivität. Ergebnis:     Befehl CMD-Startup (Stufe 1) fehlgeschlagen.

Sehen Sie sich als Nächstes / var / log / eb-docker / containers / eb-current-app an. Wenn Sie ein unerwartetes quit.log sehen, sollte es die Fehler enthalten, die Ihre Anwendung protokolliert hat, als sie erfolglos versucht hat, sie zu starten .

Leider kann es in meinem Fall nicht gestartet werden, weil eine Umgebungsvariable fehlt. AWS verhindert jedoch, dass ich die Konfiguration aktualisieren kann, während sich die Bohne in diesem Zustand befindet. Und ich kann die Umgebungsvariablen nicht angeben, während ich die Umgebung erstelle. Ich bin mir also nicht sicher, was ich tun werde, um das Problem zu beheben.

    
Shannon 23.07.2015 00:33
quelle
4

Ich habe genau das gleiche Problem wie @ Shannon. Meine Problemumgehung ist

  • Stellen Sie zuerst eine Docker-Beispieldatei bereit, die garantiert funktioniert
  • Dann richte alle Umgebungsvariablen ein, die meine echte Docker-App benötigen würde,
  • schließlich die reale Docker App neu bereitstellen.

Eine Dockerfile-Beispielkopie aus der AWS-Dokumentation :

%Vor%     
syg 19.08.2015 16:50
quelle
1

Sie können Ihre Umgebungsvariablen in der Befehlszeile in den Befehlen eb create und eb clone angeben. Diese werden vor der Erstellungs- oder Klon-Aufgabe gesetzt, so dass die Umgebung mit ihnen festgelegt wird.

Siehe die eb cli Hilfe. Zum Beispiel ...

$ eb create -h ... --envvars ENVVARS a comma-separated list of environment variables as key=value pairs ...

    
Kevin 07.12.2015 10:22
quelle

Tags und Links