How do I run Apache 2 on Alpine in Docker?
According to Alpine wiki I have to run
rc-service apache2 startafter installation of Apache 2. However, there’s no
rc-service in the Alpine running inside the container. How do I get the service command to run inside Docker container?
2 Solutions collect form web for “How do I run Apache 2 on Alpine in Docker?”
gliderlabs/docker-alpine issue 183 illustrate the docker Alpine image has no
You can see instead
nimmis/docker-alpine-apache based on
nimmis/docker-alpine-micro, which includes a runit, used to handle starting and shutting down processes automatically started.
That initd will start the apache2 script, which calls:
exec /usr/sbin/httpd -D FOREGROUND -f /web/config/httpd.conf
Alpine does not have rc-service installed by default. You need to install it (either as part of your Dockerfile build process or manually in the container).
The secret invocation is:
apk add openrc --no-cache
If you want to run it from outside the container (say docker run), then use:
docker run [options etc] bin/ash -c "apk add openrc --no-cache"
PS: rc-service is good for other things and stuff like mariadb (also not included in alpine)