Selon Alpine wiki je dois exécuter rc-service Apache2 start
après l'installation d'Apache 2. Cependant, il n'y a pas de rc-service
dans l'Alpine courant à l'intérieur du conteneur. Comment puis-je exécuter la commande de service dans le conteneur Docker?
gliderlabs/docker-Alpine
problème 18 illustrent que l'image alpine du docker n'a pas service
ou rc-service
.
Vous pouvez voir à la place nimmis/docker-Alpine-Apache
basé sur nimmis/docker-Alpine-micro
, qui inclut un runit, utilisé pour gérer les processus de démarrage et d'arrêt démarrés automatiquement.
Cet initd démarrera le script Apache2 , qui appelle:
exec /usr/sbin/httpd -D FOREGROUND -f /web/config/httpd.conf
Alpine n'a pas installé le service rc par défaut. Vous devez l'installer (dans le cadre de votre processus de génération Dockerfile ou manuellement dans le conteneur).
L'invocation secrète est:
apk add openrc --no-cache
Si vous souhaitez l'exécuter depuis l'extérieur du conteneur (disons docker run), utilisez:
docker run [options etc] bin/ash -c "apk add openrc --no-cache"
PS: le service rc est bon pour d'autres choses et des trucs comme mariadb (non inclus dans Alpine)