39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
cd /var/www/html
|
|
|
|
# Wait for MySQL to be ready (TCP check)
|
|
if [ -n "$DB_HOST" ]; then
|
|
echo "Waiting for database at $DB_HOST:${DB_PORT:-3306}..."
|
|
until php -r "new PDO('mysql:host=$DB_HOST;port=${DB_PORT:-3306};dbname=$DB_DATABASE', '$DB_USERNAME', '$DB_PASSWORD');" 2>/dev/null; do
|
|
sleep 2
|
|
done
|
|
echo "Database is ready."
|
|
fi
|
|
|
|
# Ensure Laravel storage directories exist
|
|
mkdir -p storage/framework/sessions \
|
|
storage/framework/views \
|
|
storage/framework/cache/data \
|
|
storage/logs \
|
|
bootstrap/cache
|
|
chown -R www-data:www-data storage bootstrap/cache 2>/dev/null || true
|
|
chmod -R 775 storage bootstrap/cache
|
|
|
|
# Run composer post-install scripts (skipped during build)
|
|
php /usr/bin/composer dump-autoload --optimize --no-dev 2>/dev/null || true
|
|
php artisan package:discover --ansi 2>/dev/null || true
|
|
|
|
# Laravel optimizations
|
|
php artisan config:cache
|
|
php artisan route:cache
|
|
php artisan view:cache
|
|
php artisan storage:link --force 2>/dev/null || true
|
|
|
|
# Start PHP-FPM in background
|
|
php-fpm -D
|
|
|
|
# Start Caddy in foreground
|
|
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
|