5

Ich versuche, Nginx auf einer elastischen Beandalk Docker-Instanz zu konfigurieren, um die Verwendung von Webstores zu ermöglichen. Unter Verwendung der gefundenen Informationen here habe ich eine .exebenxtensions/01_files.config zu der Zip hinzugefügt, die ich bereitstelle..expextensions mit Docker auf elasticbeanstalk

Die ZIP enthält .exextensions/01_files.config, eine Dockerfile und eine TGZ meiner Anwendung.

Der Inhalt 01_files.config ist die folgende:

files: 
    "/etc/nginx/conf.d/websocketupgrade.conf" : 
     mode: "000755" 
     owner: root 
     group: root 
     content: | 
      proxy_set_header  Upgrade   $http_upgrade; 
      proxy_set_header  Connection  "upgrade"; 

Elastic Bohnenstengel meine .ebextensions scheinbar ignoriert. Die Datei /etc/nginx/conf.d/websocketupgrade.conf wird niemals geschrieben.

Was ist die richtige Art, .extensions mit einem Docker-Container auf elastischen Bohnenstangen zu verwenden?

Antwort

-1

Elastic Beanstalk unterstützt jetzt Docker mit viel weniger Hacking, sollten Sie Dockerfile and Dockerrun.aws.json verwenden.

Erstellen Sie einfach einen neuen Container aus dem offical nginx Image und fügen Sie die Conf-Datei, die Sie oben veröffentlicht haben. Ziehen Sie dann Ihr Nginx-Bild mit der dockerrun-Datei (siehe Beispiel unten).

{ 
    "AWSEBDockerrunVersion": "1", 
    "Authentication": { 
    "Bucket": "my-bucket", 
    "Key": "mydockercfg" 
    }, 
    "Image": { 
    "Name": "me/my-nginx-image", 
    "Update": "true" 
    }, 
    "Ports": [ 
    { 
     "ContainerPort": "80" 
    } 
    ], 
    "Volumes": [ 
    { 
     "HostDirectory": "/var/", 
     "ContainerDirectory": "/etc/mysql" 
    } 
    ], 
    "Logging": "/var/log/nginx" 
} 
+0

Entschuldigung, vielleicht war ich nicht klar, aber ich benutze bereits den elastischen Bohnenstange Docker Containertyp, wie Sie vorschlagen. Nginx ist der Reverse-Proxy für den Andockcontainer im Andockcontainer für elastische Beanstalk. Ich muss nginx konfigurieren, um websockets zu erlauben. Das Problem ist, dass elastisches Bohnenranking meine .extenxtensions beim Bereitstellen ignoriert. – imagio

+1

Stellen Sie sicher, dass sich der Ordner .exextensions im Archiv befindet, das an Elastic Beanstalk gesendet wird. Es scheint, dass die einfachste Lösung ist, diesen Ordner zu Ihrem Git Repo hinzuzufügen (eb deploy kann git - Archiv unter der Haube tun, weiß aber nicht). – januszm

0

Ich bin mir ziemlich sicher, dass ElasticBeanstalk überschreibt /etc/nginx/conf.d/ als Teil der eine Anwendung einrichten, so alles, was Sie dort setzen mit ebextensions wird von der Zeit verschwunden sein die Anwendung gestartet hat oben.

Um dies zu umgehen, müssen Sie Ihre Änderungen im Staging-Bereich und nicht am endgültigen Ziel vornehmen. Ich bin nicht sicher, was der Staging-Bereich für elasticbeanstalk nginx-Implementierungen ist, aber wenn man in

sucht
/var/log/eb-activity.log 

sollten Sie in der Lage sein, um es herauszufinden.

sollten Sie die Verwendung:

container_command: 

Richtlinie in den Staging-Bereich, um Änderungen vorzunehmen.

Verwandte Themen