web-dev-qa-db-fra.com

Comment exécuter Apache 2 sur Alpine dans Docker?

Selon Alpine wiki je dois exécuter rc-service Apache2 startaprè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?

12
Psycho Punch

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
6
VonC

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)

3
lucsan