Tests / test (pull_request) Successful in 1m4s
The removed runtime/frankenphp-symfony package force-restarted the
worker after FRANKENPHP_LOOP_MAX requests (default 500) - memory-leak
paranoia the built-in 8.1 runner intentionally doesn't reimplement.
Restore the behavior natively so the upgrade is a no-op operationally:
- Caddyfile: global frankenphp block with max_requests {$MAX_REQUESTS}
- per-thread graceful restarts, other threads keep serving
- Dockerfile: ARG/ENV MAX_REQUESTS=500 bakes the same default the old
package had, overridable at docker build or runtime (-e, 0 disables)
- Stock FRANKENPHP_CONFIG env var remains the full-config escape hatch
- Documented in readme env table, docs/example.env, CHANGELOG, and the
upgrade plan (phase-4 staging note now checks thread recycling)
22 lines
650 B
Caddyfile
22 lines
650 B
Caddyfile
{
|
|
frankenphp {
|
|
# Restart each PHP worker thread after this many requests, containing
|
|
# slow memory growth across long uptime. Preserves the 7.4-era default
|
|
# loop count of runtime/frankenphp-symfony (500) after the Symfony 8.1
|
|
# upgrade. Set MAX_REQUESTS=0 to disable restarts. The Dockerfile bakes
|
|
# in the default of 500 via build arg; override at runtime with:
|
|
# docker run -e MAX_REQUESTS=5000 ...
|
|
# For full control, the stock FRANKENPHP_CONFIG env var can inject any
|
|
# directive under this block instead.
|
|
max_requests {$MAX_REQUESTS}
|
|
}
|
|
}
|
|
|
|
http://
|
|
root public/
|
|
rewrite index.php
|
|
php {
|
|
root /app/public
|
|
worker index.php
|
|
}
|