Introduces a self-contained Docker build under docker/ that boots the
full Laravel + Vite + Reverb + Horizon + scheduler stack inside a
single container.
The Dockerfile exposes two targets sharing a common system-base layer
(PHP 8.4-FPM Alpine + Postgres/Redis/intl/sockets/redis extensions):
- dev: bind-mount source at runtime, runs Vite via supervisord, hot
reloads PHP via opcache.validate_timestamps=1, UID/GID build args
align container writes with the host user.
- production: ships the prebuilt application — composer --no-dev,
npm run build + build:ssr, wayfinder TS pre-generated, OpCache
hardened, fixed UID 1000.
Sidecar configs (nginx, php.{dev,prod}.ini, supervisord.{dev,prod}.conf,
entrypoint, postgres-init for the test DB) live next to the Dockerfile
so the build context is self-describing. The entrypoint is idempotent
and handles APP_KEY generation, migrations, storage:link, Passport
keys, Wayfinder regen, and dependency reinstall on every boot.
22 lines
584 B
INI
22 lines
584 B
INI
; TryPost — PHP settings for local development.
|
|
memory_limit = 512M
|
|
upload_max_filesize = 100M
|
|
post_max_size = 100M
|
|
max_execution_time = 120
|
|
max_input_vars = 5000
|
|
|
|
; Hot-reload PHP edits without restarting FPM.
|
|
opcache.enable = 1
|
|
opcache.memory_consumption = 128
|
|
opcache.max_accelerated_files = 10000
|
|
opcache.validate_timestamps = 1
|
|
opcache.revalidate_freq = 0
|
|
|
|
; Surface errors loudly in dev.
|
|
display_errors = On
|
|
display_startup_errors = On
|
|
error_reporting = E_ALL
|
|
log_errors = On
|
|
error_log = /proc/self/fd/2
|
|
|
|
; Xdebug optional — enable via XDEBUG_MODE in compose.override.yaml.
|