- Run cache:warmup in the build stage so containers start with a
pre-built Symfony kernel and DI container
- Scope the cache volume to var/cache/prod/pools where Symfony writes
pool data, preserving the warmed kernel across container restarts
- Add docker-compose.prod.yml for deploying the registry image without
the dev override being picked up automatically
- Expand .dockerignore to exclude vendor/, tests/, docs, compose files,
and env files from the build context
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace php:8.4-cli-alpine3.21 with dunglas/frankenphp:1-php8.4-alpine.
No Go toolchain required — the official image ships as a pre-compiled
Alpine binary.
- Drop docker-php-ext-install opcache (FrankenPHP enables it by default)
- Both dev and final stages run frankenphp run --config /etc/caddy/Caddyfile
- Dev stage bakes in Caddyfile.dev (no worker mode, Xdebug compatible)
- Final stage bakes in production Caddyfile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>