Files
cazubu/docker-entrypoint.sh
Gemini Bot 8c9a40780a
All checks were successful
Docker Build & Push / build-and-push (push) Successful in 1m44s
Fix: Remove dev files, add auto-migration entrypoint, update Dockerfile/README
2025-12-08 02:02:01 +00:00

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