5

Sto tentando di configurare nginx su un'istanza Docker elastico beandalk per consentire l'utilizzo di websockets. Utilizzando le informazioni trovate here ho aggiunto un .ebextensions/01_files.config allo zip che sto distribuendo..ebextensions con Docker su elasticbeanstalk

Il file zip contiene .ebextensions/01_files.config, un Dockerfile e un tgz della mia applicazione.

Il contenuto del 01_files.config è il seguente:

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"; 

pianta di fagioli elastico ignora apparentemente miei .ebextensions. Il file /etc/nginx/conf.d/websocketupgrade.conf non viene mai scritto.

Qual è il modo corretto di utilizzare .ebextensions con un contenitore Docker su beanstalk elastico?

risposta

-1

Elastic Beanstalk ora supporta la finestra mobile con molto meno hacking, si dovrebbe usare Dockerfile and Dockerrun.aws.json.

Basare semplicemente un nuovo contenitore sull'immagine offical nginx e aggiungere il file di configurazione che è stato postato in precedenza. Quindi inserisci l'immagine di nginx usando il file dockerrun (vedi esempio sotto).

{ 
    "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

Spiacente, forse non ero chiaro ma sto già usando il tipo di contenitore Docker elastico beanstalk come suggerisci. Nginx è il proxy inverso del contenitore finestra mobile per impostazione predefinita nel contenitore mobile docker elastico. Devo configurare nginx per consentire i websocket. Il problema è che il beanstalk elastico sembra ignorare le mie. Estensioni durante la distribuzione. – imagio

+1

Assicurarsi che la cartella .ebextensions si trovi nell'archivio inviato a Elastic Beanstalk. Sembra che la soluzione più semplice sia quella di aggiungere questa cartella al tuo repository git (la distribuzione di eb potrebbe fare git --archive sotto il cofano, comunque non so). – januszm

0

Sono abbastanza sicuro che ElasticBeanstalk sovrascrive /etc/nginx/conf.d/ come parte del set up di un'applicazione, quindi tutto si mette lì con ebextensions starò via per il momento l'applicazione è stata avviata su.

Per aggirare questo problema, è necessario apportare le modifiche all'area di gestione, anziché alla destinazione finale. Non sono sicuro di quello che l'area di sosta è per le implementazioni elasticbeanstalk nginx, ma se si guarda in

/var/log/eb-activity.log 

si dovrebbe essere in grado di capirlo.

È consigliabile utilizzare il:

container_command: 

direttiva per apportare modifiche alla zona di sosta.

Problemi correlati