- pin parser updates: bump dev-master in composer.lock to bust Docker composer-layer cache so propresenter/parser actually redeploys - add set -euo pipefail + git reset --hard to avoid silent partial deploys - docker compose v2/v1 fallback, build --pull, up --force-recreate, prune - boot-container: rm -rf public/build before asset sync to drop stale assets
57 lines
1.8 KiB
Bash
Executable file
57 lines
1.8 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
cd /app
|
|
|
|
echo "[boot] Starting pp-planer container boot..."
|
|
|
|
# Ensure all required directories exist (volumes may be freshly mounted)
|
|
mkdir -p \
|
|
storage/logs \
|
|
storage/framework/views \
|
|
storage/framework/cache/data \
|
|
storage/framework/sessions \
|
|
storage/app/public \
|
|
database \
|
|
public
|
|
|
|
# Run first-time initialization (idempotent — safe to call every boot)
|
|
/app/build/init-app.sh
|
|
|
|
# Fix permissions: www-data must own all writable directories.
|
|
# The || true prevents exit on macOS Docker Desktop (bind-mount ownership restrictions).
|
|
# On a Linux host running as root, chown will succeed silently.
|
|
chown -R www-data:www-data storage bootstrap/cache database 2>/dev/null || true
|
|
chmod -R 775 storage bootstrap/cache database 2>/dev/null || true
|
|
|
|
rm -f /app/public/hot
|
|
|
|
echo "[boot] Syncing pre-built Vite assets to bind-mounted public/ ..."
|
|
# Alte gehashte Assets entfernen, damit sich im bind-mounteten public/build
|
|
# kein Muell aus frueheren Builds ansammelt (cp -r merged nur, loescht nie).
|
|
rm -rf /app/public/build
|
|
cp -r /app/public-build/* /app/public/ 2>/dev/null || true
|
|
|
|
# Create RELATIVE storage symlink (public/storage → ../storage/app/public).
|
|
# Must be relative: Caddy serves the bind-mounted ./public from the host, where
|
|
# the container's /app/* paths do not exist — an absolute symlink would dangle
|
|
# from Caddy's view and return 404 for every /storage/* request.
|
|
echo "[boot] Creating storage symlink..."
|
|
ln -sfn ../storage/app/public public/storage
|
|
|
|
# Run database migrations
|
|
echo "[boot] Running migrations..."
|
|
php artisan migrate --force
|
|
|
|
# Warm up Laravel caches
|
|
echo "[boot] Warming caches..."
|
|
php artisan config:cache
|
|
php artisan route:cache
|
|
php artisan view:cache
|
|
php artisan event:cache
|
|
|
|
echo "[boot] Boot complete. Starting supervisord..."
|
|
|
|
# Hand off to CMD (supervisord)
|
|
exec "$@"
|