31 lines
1.1 KiB
Bash
31 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
cd /var/www/html
|
|
|
|
# Ensure Laravel's writable dirs exist (dev bind-mount may not have them yet).
|
|
mkdir -p \
|
|
storage/framework/cache \
|
|
storage/framework/sessions \
|
|
storage/framework/views \
|
|
storage/logs \
|
|
bootstrap/cache
|
|
|
|
# When running as root (the `app` service / prod), hand storage to the app user
|
|
# so php-fpm (which runs as `app`) can write. Non-root services (vite/queue/
|
|
# reverb run as the host UID) skip this — they already own the bind-mount.
|
|
if [ "$(id -u)" = "0" ]; then
|
|
chown -R app:app storage bootstrap/cache 2>/dev/null || true
|
|
fi
|
|
|
|
# Freeze the configured panel domain as the active one — ONLY in the web/app container
|
|
# (its CMD is supervisord). The queue/reverb workers share this entrypoint and, in dev,
|
|
# the same bind-mounted storage; snapshotting from a worker restart would apply a pending
|
|
# domain without an app restart, breaking the "applies on restart" boundary. Best-effort:
|
|
# a failure here must never block startup.
|
|
if [ "$1" = "supervisord" ]; then
|
|
php artisan clusev:snapshot-domain >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
exec "$@"
|