59 lines
1.7 KiB
Bash
Executable File
59 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Enable error reporting
|
|
set -e
|
|
set -x
|
|
|
|
# Create necessary directories with proper permissions as root
|
|
mkdir -p /var/log/supervisor
|
|
mkdir -p /var/run/supervisor
|
|
chown -R www-data:www-data /var/log/supervisor
|
|
chown -R www-data:www-data /var/run/supervisor
|
|
chmod -R 775 /var/log/supervisor
|
|
chmod -R 775 /var/run/supervisor
|
|
|
|
# Create storage directories with proper permissions
|
|
mkdir -p /var/www/storage/logs
|
|
chown -R www-data:www-data /var/www/storage
|
|
chmod -R 775 /var/www/storage
|
|
|
|
# Ensure Laravel storage and cache directories are writable
|
|
chown -R www-data:www-data /var/www/bootstrap/cache
|
|
chmod -R 775 /var/www/bootstrap/cache
|
|
|
|
# Wait for database to be ready (with increased timeout and better error handling)
|
|
max_tries=30
|
|
count=0
|
|
echo "Waiting for database connection..."
|
|
|
|
# First, wait a bit for the database container to fully initialize
|
|
sleep 10
|
|
|
|
while ! php artisan db:monitor > /dev/null 2>&1; do
|
|
count=$((count + 1))
|
|
if [ $count -gt $max_tries ]; then
|
|
echo "Database connection timeout after $max_tries attempts"
|
|
echo "Checking database container status..."
|
|
# Try to connect directly to MySQL to get more detailed error
|
|
mysql -h db -u admindb_arifal -parifal201 -e "SELECT 1" || true
|
|
exit 1
|
|
fi
|
|
echo "Waiting for database... ($count/$max_tries)"
|
|
sleep 5
|
|
done
|
|
|
|
echo "Database connection established!"
|
|
|
|
# Run database-dependent commands
|
|
echo "Running database migrations..."
|
|
php artisan migrate --force
|
|
|
|
echo "Running database seeders..."
|
|
php artisan db:seed --force
|
|
|
|
echo "Optimizing Laravel..."
|
|
php artisan optimize:clear
|
|
php artisan optimize
|
|
|
|
# Start supervisor (which will manage PHP-FPM)
|
|
exec /usr/bin/supervisord -n -c /etc/supervisor/conf.d/supervisord.conf |