Docker CentOS image ne démarre pas automatiquement httpd
j'essaie d'exécuter une simple image Docker avec Apache et un programme PHP. Il fonctionne très bien si je run
docker run -t -i -p 80:80 my/httpd /bin/bash
puis lancer manuellement Apache
service httpd start
cependant je ne peux pas faire démarrer httpd automatiquement quand
docker run -d -p 80:80 my/httpd
Apache va démarrer puis container existe. J'ai essayé un tas de différents CMD
s dans mon fichier docker
CMD /etc/init.d/httpd start
CMD ["service" "httpd" "start"]
CMD ["/bin/bash", "/etc/init.d/httpd start"]
ENTRYPOINT /etc/init.d/httpd CMD start
CMD ./start.sh
start.sh
#!/bin/bash
/etc/init.d/httpd start
Cependant chaque instance docker existera après apache commence
est-ce que je manque quelque chose de vraiment évident?
22
demandé sur
halfer
2014-01-22 14:23:29
2 réponses
Vous devez exécuter apache (httpd) directement - vous ne devez pas utiliser init.d script.
deux options:
- vous devez exécuter apache en premier plan:
/usr/sbin/apache2 -DFOREGROUND ...
(ou /usr/sbin/httpd dans CentOS) - vous devez démarrer tous les services (y compris apache configuré comme auto-run) en exécutant
/sbin/init
comme point d'entrée.
18
répondu
Jiri
2014-01-22 17:23:28
Ajouter cette ligne dans le bas de votre Dockerfile
exécuter Apache au premier plan sur CentOS
ENTRYPOINT ["/usr/sbin/httpd", "-D", "FOREGROUND"]
11
répondu
Hemerson Varela
2016-01-21 15:37:01