add docker
This commit is contained in:
59
docker/startup.sh
Executable file
59
docker/startup.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user