Ho provato a seguire alcuni tutorial e documentazione sul docker del mio server web, ma sto riscontrando problemi nel far funzionare il servizio tramite il comando di esecuzione della finestra mobile.Nginx Dockerized non è in fase di avvio
Questo è il mio Dockerfile:
FROM ubuntu:trusty
#Update and install stuff
RUN apt-get update
RUN apt-get install -y python-software-properties aptitude screen htop nano nmap nginx
#Add files
ADD src/main/resources/ /usr/share/nginx/html
EXPOSE 80
CMD service nginx start
creo la mia immagine:
docker build -t myImage .
E quando l'eseguo:
docker run -p 81:80 myImage
sembra fermare solo:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90e54a254efa pms-gui:latest /bin/sh -c service n 3 seconds ago Exit 0 prickly_bohr
Mi aspetto che funzioni con la porta 81-> 80 ma non lo è. In esecuzione
docker start 90e
non sembra fare nulla.
Ho anche provato immettendola direttamente
docker run -t -i -p 81:80 myImage /bin/bash
e da qui posso iniziare il servizio
service nginx start
e da un'altra scheda posso vedere che sta funzionando come previsto (anche nel mio browser) :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
408237a5e10b myImage:latest /bin/bash 12 seconds ago Up 11 seconds 0.0.0.0:81->80/tcp mad_turing
Quindi presumo che stia facendo qualcosa di sbagliato con il mio Dockerfile? Qualcuno potrebbe darmi una mano con questo, sono abbastanza nuovo per Docker. Grazie!
SOLUZIONE: Sulla base della risposta di Ivant ho trovato un altro modo per avviare nginx in primo piano. Il mio Dockerfile CMD ora assomiglia:
CMD /usr/sbin/nginx -g "daemon off;"
Grazie, questo è abbastanza ovvio quando lo spieghi :) Ora ho creato uno script di loop e probabilmente evolverò quella soluzione nel tempo. Adesso almeno so perché! – Solvemon
Le prime righe dovrebbero essere probabilmente parte della documentazione. – Vor