53 lines
1.5 KiB
Bash
53 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# docker/init.sh — Entry point script
|
|
# Ждёт БД, запускает миграции, потом стартует PHP-FPM
|
|
|
|
set -e
|
|
|
|
DB_HOST="${DB_HOST:-db}"
|
|
DB_PORT="${DB_PORT:-3306}"
|
|
DB_NAME="${DB_NAME:-monitoring_system}"
|
|
DB_USER="${DB_USERNAME:-mon_user}"
|
|
DB_PASS="${DB_PASSWORD:-mon_password_123}"
|
|
|
|
# Флаг для отключения SSL (MariaDB в контейнере без SSL)
|
|
MYSQL_OPTS="--skip-ssl"
|
|
|
|
echo "🚀 MirvMon — Starting up..."
|
|
|
|
# ------------------------------------------
|
|
# 1. Ожидание готовности БД
|
|
# ------------------------------------------
|
|
echo "⏳ Waiting for MariaDB at ${DB_HOST}:${DB_PORT}..."
|
|
MAX_RETRIES=30
|
|
RETRY=0
|
|
|
|
while ! mysql $MYSQL_OPTS -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" -e "SELECT 1;" "$DB_NAME" >/dev/null 2>&1; do
|
|
RETRY=$((RETRY + 1))
|
|
if [ $RETRY -ge $MAX_RETRIES ]; then
|
|
echo "❌ Database not ready after $MAX_RETRIES attempts"
|
|
exit 1
|
|
fi
|
|
echo " Retry $RETRY/$MAX_RETRIES..."
|
|
sleep 2
|
|
done
|
|
echo "✅ Database is ready"
|
|
|
|
# ------------------------------------------
|
|
# 2. Запуск миграций
|
|
# ------------------------------------------
|
|
echo "📦 Running database migrations..."
|
|
|
|
# Экспортием переменные для migrate.sh
|
|
export DB_HOST DB_PORT DB_NAME DB_USERNAME DB_PASSWORD
|
|
|
|
migrate.sh
|
|
|
|
echo ""
|
|
|
|
# ------------------------------------------
|
|
# 3. Запуск PHP-FPM
|
|
# ------------------------------------------
|
|
echo "🟢 Starting PHP-FPM..."
|
|
exec "$@"
|