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?

  • “The headers or library files could not be found for jpeg” installing Pillow on Alpine Linux
  • How to use bash with an Alpine based docker image?
  • alpine package py-pip missing
  • How to use a bash script in Alpine Linux?
  • Pillow ImageFont is different in docker/Alpine and Ubuntu
  • Docker Alpine linux package masked
  • creating a file inside /etc/apt/sources.list.d/
  • Google Container Engine: Kubernetes is not exposing external IP after creating container
  • How can I map a shared folder from my container on Mac?
  • Access mongo shell running in docker container in linux script
  • How to re-bind docker volume after removing data-only container?
  • Access to Docker Container Port
  • 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 service or rc-service.

    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)

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.