Repository navigation
v1.0.0 — Production-ready PHP base images
First public release of Cbox PHP Base Images (MIT).
Production-ready PHP containers for Debian 12 (Bookworm), published to ghcr.io/cboxdk/php-baseimages/: php-fpm, php-cli, nginx, and the multi-service php-fpm-nginx — each in four tiers (slim / standard / chromium / dev) with root and rootless variants, for PHP 8.2–8.5, linux/amd64 + linux/arm64. Rolling tags are rebuilt weekly with upstream security patches; immutable SHA tags are published alongside.
Highlights
- Cbox Init 3.1.2 as PID 1 — DAG-based multi-process supervision, TCP/HTTP/exec health checks, supervisor-owned readiness (
/tmp/cbox-ready,/readyz//livez), Prometheus metrics,management API (loopback + Unix socket by default), full init signal plane (SIGHUP reload, USR1/USR2 forwarding), graceful shutdown and zombie reaping. - Runtime PHP-FPM tuning (fpm-tune) — measures live per-worker memory (PSS) and resizes the pool via an atomic drop-in + graceful reload; master PID unchanged, zero dropped connections verified under saturated load. Opt-in via
CBOX_FPM_TUNE=true. Boot-time profile sizing seeds the pool and clamps safely on small containers (PHP_FPM_AUTOTUNE_STRICT=1for fail-hard). - Warmup hooks via env vars —
CBOX_INIT_HOOK_PRE_START_<N>_*runs supervised pre-flight work (Statamic stache warm, Symfony cache warmup, migrations) before health checks pass. - Framework auto-detection — Laravel (scheduler, Horizon, Reverb, queues, autoscaler), Symfony, WordPress; permissions fixed automatically.
- Hardened nginx — Brotli + gzip (incl. pre-compressed
.br/.gzfrom disk), headers-more (NGINX_SERVER_HEADER), privacy-aware access-log formats (combined_no_query,json), security headers, TLS-proxy/PROXY-protocol awareness, mTLS support. - 40+ PHP extensions baked in via a single source of truth (php-base), Composer, Node.js/Bun on standard+.
Notes for upgraders from pre-release rolling tags
- The management API now binds loopback-only by default — set
CBOX_INIT_API_HOST=0.0.0.0andCBOX_INIT_API_AUTHto reach a published port 9180. - cbox-init's REST log endpoints renamed fields to match the SSE stream (
timestamp,process,instance). - A boot crash-loop for containers under ~512MB (fixed default profile not fitting the memory limit) is fixed as of these images.
Full details in docs/changelog.md and the docs under /docs.