docker-images/pluie/alpine-apache-php7/README.md
2018-08-08 01:18:37 +02:00

3.5 KiB

pluie/alpine-apache-php7

Extend pluie/alpine with apache 2.4.25 and php 7.0.16

  • error log are attached to stdout
  • no need port redirection
  • you can use env var at container creation : HTTP_SERVER_NAME (default : site.docker ortherwise edit /app/vhost later)
  • you can still use ever your local http & sql server while your container(s) are running

Image Size

  • image ~ 45 MB

ENV variables

 HTTP_SERVER_NAME=site.docker   # apache ServerName  
          WWW_DIR=www           # DocumentRoot relative to volume  
        WWW_INDEX=index.php     # DirectoryIndex
    FIX_OWNERSHIP=1             # 

Inherit ENV variables

        SHENV_CTX=LOCAL         # LOCAL|INT|PROD change context bg color
       SHENV_NAME=Php7          # container name 
      SHENV_COLOR=67            # ANSI EXTENDED COLOR CODE
               TZ=Europe/Paris  # TIMEZONE

Image Volumes

/app directory is a docker volume bind to your app project (silex/symfony etc)

/app/$WWW_DIR is the documentRoot.
put only your entry point and static files to the documentRoot directory, no your app sources (/app directory is design for this).

/app/vhost is your app vhost configuration file (with a serverName directive). by default it use the apache rewrite module to redirect all uri to entry point $WWW_INDEX

/app/              # your application directory
  |
  |---- $WWW_DIR/  # documentRoot
  |
  |---- vhost     # apache app vhost

Image Usage

chdir to your project directory

$ docker run --name php7 -it --link=mysql:db -v $(pwd):/app pluie/alpine-apache

or

$ docker run --name php7 -it --link=mysql:db -e HTTP_SERVER_NAME=yourServerName -v $(pwd):/app pluie/alpine-apache-php7

Controling http server

# reload
$ docker exec -it php7 "httpd -k graceful"
# restart
$ docker exec -it php7 "httpd -k restart"

for more commands :

$ docker exec -it php7 "httpd -h"