PHP Docker Images
These docker images provide each major version of PHP (currently 5.6, 7.0 and 7.1) with support for various extensions required for WordPress and the WP Engine Platform.
There are two main groups of images provided here:
The Alpine images are based on the precompiled php-fpm-alpine images available at https://hub.docker.com/_/php/. The gcc library used by Alpine is
musl (instead of glibc) and all extensions used must be able to compile using musl as well. Currently, ionCube does not provibe a musl-based extension which created the need for an alternative set of images using glibc.
The Busybox images are compiled from source downloaded from PHP.net. The library used is glibc which allows the ionCube extension (and any other glibc-only extensions) to work.
Updates & Prebuilt Images
These images are configured as Automated builds on Docker Cloud.
By default, this will run php-fpm and listen for FastCGI connections on port 9000.
docker run -d -p 9000:9000 wpengine/php:7.0-busybox
./build.sh 5.6 alpine ./build.sh 7.0 alpine ./build.sh 7.1 alpine
./build.sh 5.6 busybox ./build.sh 7.0 busybox ./build.sh 7.1 busybox
The default build type is
docker build -t wpengine/php:$VERSION-$BASE_IMAGE -f Dockerfile.php$VERSION.$BASE_IMAGE .
docker build -t wpengine/php:7.0-alpine -f Dockerfile.php7.0.alpine .
docker build -t wpengine/php:7.0-busybox -f Dockerfile.php7.0.busybox .
Before using any of these images in production, be sure to override the default configs found in the following locations. The default values are intended for development and testing, not production deployment.
As part of this container we install latest version of the New Relic php agent. The New Relic daemon should be run in a separate container and the daemon socket should be mounted on /run/newrelic/newrelic.sock. The socket location can be changed by setting newrelic.daemon.port.
RUN echo "newrelic.daemon.port=/run/newrelic/newrelic.sock" >> /usr/local/etc/php/conf.d/newrelic.ini