Production-ready PHP-FPM & CLI images: 52 extensions, Composer, WP-CLI, Node.js. PHP 8.2-8.5
6.8K
Published by easydigital · GitHub
Enterprise PHP images with 52 extensions, Composer, WP-CLI, and the MariaDB client. Same image as morsalin1342/php — published here for organizational CI/CD pipelines.
| Feature | Official image | This image |
|---|---|---|
| PHP extensions | Few built in | ✅ 52 pre-installed |
| Composer / WP-CLI | ❌ | ✅ Both |
| Node.js | ❌ | ✅ v24, configurable |
| MariaDB client | ❌ | ✅ mariadb tools, also as mysql, mysqldump |
| Debian release | One | ✅ trixie (Debian 13) |
| Variants | Separate images | ✅ FPM and CLI from one build |
| Variant | Use Case |
|---|---|
*-fpm | Web applications (pair with Nginx/Caddy) |
*-cli | CLI tasks, migrations, CI/CD pipelines |
# production.yml
services:
php:
image: easydigital/php:8.4-fpm-trixie
restart: always
volumes:
- ./src:/var/www/html
- ./php.ini:/usr/local/etc/php/php.ini:ro
- ./www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./src:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- name: Run tests
run: |
docker run --rm -v ${{ github.workspace }}:/app easydigital/php:8.4-cli \
sh -c "composer install && php vendor/bin/phpunit"
8.5-fpm, 8.5-cli, 8.4-fpm, 8.4-cli, 8.3-fpm, 8.3-cli, 8.2-fpm, 8.2-cli (+ -trixie aliases), latest-fpm → 8.5, latest-cli → 8.5
Only trixie is built; -trixie tags are aliases of the unsuffixed ones. Old -bookworm tags are no longer updated.
The full list of extensions and tools, with versions, is in EXTENSIONS.md.
pgsql + pdo_pgsql), Imagick, GD, Intl,
OpenTelemetry, openswoole, ftp and more-fpm for web behind nginx or Caddy, -cli for tasks, migrations and CIQ: FPM or CLI? A: FPM for web behind nginx or Caddy; CLI for migrations, queues and CI.
Q: Can I add extensions?
A: Yes — RUN install-php-extensions <name> in a layer on top.
Q: Is there a bookworm image?
A: No. Only trixie is built now. Older -bookworm tags stay on Docker Hub but are no longer updated.
| Image / Tool | Description |
|---|---|
| easydigital/caddy | Standalone Caddy with WAF, rate limiting & caching |
| easydigital/frankenphp | Caddy + PHP app server in one container |
| easydigital/nginx | nginx with ModSecurity 3, Brotli, zstd & GeoIP2 |
| easydigital/apache | Apache as a static server or php-fpm application server, no PHP inside |
| morsalin1342/php | Same image, personal namespace |
⭐ If this image helps you, consider giving it a star on GitHub!
Content type
Image
Digest
sha256:e2cb3f56b…
Size
516.2 MB
Last updated
3 days ago
docker pull easydigital/php:latest-cli