Files
portal-api/docker/entrypoint.sh
T

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