Production-ready PHP-FPM & CLI images: 57 extensions, Composer, WP-CLI, Node.js. PHP 8.2-8.5
5.1K
Published by easydigital · GitHub
Enterprise PHP images with 57 extensions, Composer, WP-CLI, and Supervisor. Same image as morsalin1342/php — published here for organizational CI/CD pipelines.
| Feature | Official image | This image |
|---|---|---|
| PHP extensions | Few built in | ✅ 57 pre-installed |
| Composer / WP-CLI | ❌ | ✅ Both |
| Node.js | ❌ | ✅ v24, configurable |
| Supervisor + Cron | ❌ | ✅ In the FPM images |
| Debian releases | One | ✅ bookworm and trixie |
| 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-bookworm
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 (+ -bookworm and -trixie variants), latest-fpm → 8.5, latest-cli → 8.5
Unsuffixed tags are bookworm; append -trixie for Debian 13.
pgsql + pdo_pgsql), Imagick, GD, Intl,
AMQP, Kafka, 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: bookworm or trixie?
A: Unsuffixed tags are bookworm. Append -trixie for Debian 13.
| Image / Tool | Description |
|---|---|
| easydigital/caddy | Standalone Caddy with WAF, rate limiting & caching (org) |
| easydigital/frankenphp | Caddy + PHP app server in one container (org) |
| easydigital/nginx | nginx with ModSecurity 3, Brotli, zstd & GeoIP2 (org) |
| morsalin1342/php | Personal account mirror |
⭐ If this image helps you, consider giving it a star on GitHub!
Content type
Image
Digest
sha256:7b0e576cd…
Size
485.5 MB
Last updated
27 days ago
docker pull easydigital/php:8.3-cli