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?

  • cannot build docker image
  • docker php:7.1-fpm-alpine fails to build GD
  • what is the alpine linux equivalent package of ubuntu's libarmadillo-dev? [closed]
  • Docker alpine image's basic commands are not working
  • Errors with alpine linux 3.5 and ruby 2.0?
  • Installing numpy on Docker Alpine
  • How Docker is better than Vagrant+LXC+Chef [closed]
  • How ensure at least one service is running on every Docker Swarm node
  • Is there any way to make Docker download public images faster?
  • Symfony docker container can't connect to Mysql
  • I2C inside a docker container
  • nginx & nodejs: connect() failed (111: Connection refused) while connecting to upstream
  • 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.