Fuzzy as in reference to the https://en.wikipedia.org/wiki/The_Mythical_Man-Month book where Fred describes the approach of "write one to throw away" as the best start.
A base docker image for php applications, on which other application speficif (like Drupal) images can be base, in order to share a set of standards.
Maintained by: James Nesbitt [email protected]
This image is available publicly at:
This image is based on https://github.com/wunderkraut/image-fuzzy-alpine-base.
- Install php-fpm (no cli)
- Include a large number of common php extensions
- Set the image to run and expose php-fpm as a service at port 9000
/etc/php7/php-fpm.d/www.conf
This is a custom fpm configuration:
- runs as app:app;
- listens as app:app on port 9000;
- sets a run/nice mode (pm.ondemand);
- enable status and ping paths;
- rewires logging to output to the docker container output;
- log all errors, but don't display any errors (standard production).
- increase the default limits for memory usage, cache, and execution time;
- increate the default limits for post and file uploads;
- turns off error output to response
- default to UTC
- enable opcache
run this container as an independent service:
$/> docker run -d quay.io/wunder/fuzzy-alpine-php-fpm
map any needed services such as memcache and dbs, and mount any source code volumes to whatever path needed:
$/> docker run -d \
-v "$(pwd):/app/web" \
-l "my_running_db_container:db.app" \
-l "my_running_redis_container:redis.app" ''
quay.io/wunder/fuzzy-alpine-php-fpm
- some kind of automated testing would be usefull.