All checks were successful
Docker Build & Push / build-and-push (push) Successful in 1m44s
45 lines
1.6 KiB
Bash
45 lines
1.6 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Funktion zum Warten auf MySQL
|
|
wait_for_db() {
|
|
echo "Warte auf Datenbank-Verbindung zu $DB_SERVER..."
|
|
# Max 30 Sekunden warten
|
|
for i in {1..30}; do
|
|
if mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" -e "SELECT 1" >/dev/null 2>&1; then
|
|
echo "Datenbank ist erreichbar!"
|
|
return 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
echo "Fehler: Datenbank nicht erreichbar nach 30 Sekunden."
|
|
return 1
|
|
}
|
|
|
|
# Wenn DB_SERVER gesetzt ist, versuchen wir die Migration
|
|
if [ ! -z "$DB_SERVER" ]; then
|
|
if wait_for_db; then
|
|
echo "Prüfe Datenbank-Schema..."
|
|
|
|
# Prüfen ob 'users' Tabelle existiert
|
|
if ! mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" "$DB_NAME" -e "SELECT 1 FROM users LIMIT 1" >/dev/null 2>&1; then
|
|
echo "Initialisiere Datenbank-Struktur..."
|
|
mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" "$DB_NAME" < /var/www/html/database/install.sql
|
|
|
|
# Standard-User anlegen (testnutzer / Start123!)
|
|
echo "Lege Standard-Benutzer an..."
|
|
# Hash für 'Start123!'
|
|
HASH='$2y$10$Ov7qzHnk4EKYdDNLNP073ecsrRJM5VtK4iWcMKBFBosEc6kaFbC.y'
|
|
mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO users (username, password_hash) VALUES ('testnutzer', '$HASH')"
|
|
|
|
echo "Datenbank erfolgreich initialisiert."
|
|
else
|
|
echo "Datenbank ist bereits initialisiert."
|
|
fi
|
|
fi
|
|
else
|
|
echo "Warnung: DB_SERVER nicht gesetzt. Überspringe Datenbank-Check."
|
|
fi
|
|
|
|
# Apache starten
|
|
exec apache2-foreground |