/Dockerfile

:package: Dockerfiles from WebDevOps for PHP, Apache and Nginx (with PHP5 and PHP7)

Primary LanguageShellMIT LicenseMIT

Dockerfile

Automated built and tested on WebDevOps Build server sponsored by

Docker layout

Documentation

Dockerfile Description Depends on
bootstrap Distribution with ansible and some scripts official docker files
base Base containers for WebDevOps service containers webdevops/bootstrap
base-app Base containers for WebDevOps application containers webdevops/base
php PHP (cli and fpm) service containers webdevops/base-app
php-apache PHP (cli and fpm) with Apache service containers webdevops/php
php-nginx PHP (cli and fpm) with Nginx service containers webdevops/php
hhvm HHVM (cli and fcgi) service containers webdevops/base-app
hhvm-apache HHVM (cli and fcgi) with Apache service containers webdevops/hhvm
hhvm-nginx HHVM (cli and fcgi) with Nginx service containers webdevops/hhvm
vsftp VSFTP (ftp service) service container webdevops/base:latest
storage Storage (noop) container webdevops/base:latest
ssh SSH service container webdevops/base:latest
postfix Postfix service container webdevops/base:latest
mail-sandbox Mail catcher service container (catches all mails via SMTP and are accessable via IMAP) webdevops/postfix:latest
samson-deployment Samson based deployment service zendesk/samson
sphinx Sphinx container webdevops/bootstrap:alpine-3
varnish Varnish container webdevops/base:alpine-3

Building

Local building of containers can be done with make and Makefile:

Command Description
sudo make setup To Install dependancies of build chain tools
make all Build all containers fast mode (parallel building, FAST=1)
FAST=0 make all Build all containers slow mode (serial building)
DEBUG=1 make all Show log of build process even if process is successfull
FORCE=1 make all Force container build (docker build --no-cache ...)
WHITELIST="alpine-3 centos-7" make all Build all container with tag alpine-3 or centos-7

make baselayout Build and deploy baselayout.tar
make provision Deploy all configuration files from _provisioning/
make dist-update Update local distrubtion images (CentOS, Debian, Ubuntu)
make full Run provision and build all images

make test Run testsuite (use currently available docker images on your docker host)
make test-hub-images Run testsuite but pull newest docker images from docker hub first

make push Run tests and rebuild them (use cache) and push them to docker hub
make publish Run dist-update, all with FORCE and push

make base Build all base containers
make service Build all service containers
make php Build all php containers
make hhvm Build all hhvm containers
make nginx Build all nginx containers
make apache Build all apache containers
make webdevops/php-nginx Build specific containers (as example)

Provisioning

All base inherited containers provides an modular provisioning available as simple shell scripts and ansible roles. See docker/base/README.md for more informations.

The configuration and provisioning files are build from _provisioning/ to get a consistent configuraiton for all containers. This also should reduce copy&paste errors because the configuration will be deployed automatically into containers on build process.