Files
Aigo-docker/docker-entrypoint.sh
T
2026-06-04 08:01:48 +07:00

44 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
cd /var/www/aigo
# Ensure storage directories exist
mkdir -p storage/framework/{cache/sessions,cache/data,views,testing} \
storage/logs \
bootstrap/cache 2>/dev/null || true
chown -R www-data:www-data storage bootstrap/cache 2>/dev/null || true
# Generate app key if missing (required by Laravel)
php artisan key:generate --force 2>/dev/null || true
# Wait for database
if [ -n "$DB_HOST" ]; then
echo "Waiting for database connection..."
DB_OK=
for i in $(seq 1 15); do
php -r "
try {
new PDO('mysql:host=$DB_HOST;port=${DB_PORT:-3306}', '$DB_USERNAME', '$DB_PASSWORD');
exit(0);
} catch (PDOException \$e) {
exit(1);
}
" 2>/dev/null && DB_OK=1 && break
echo "Waiting for database... attempt $i"
sleep 2
done
if [ -n "$DB_OK" ]; then
echo "Database connected."
php artisan storage:link --force 2>/dev/null || true
php artisan migrate --force 2>/dev/null || true
else
echo "Warning: Database not available. Skipping migrations."
fi
fi
php artisan config:cache 2>/dev/null || true
php artisan route:cache 2>/dev/null || true
php artisan view:cache 2>/dev/null || true
exec "$@"