59 lines
1.8 KiB
Bash
59 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# Docker Entrypoint für MYP System
|
|
# Mercedes-Benz TBA Marienfelde
|
|
|
|
set -e
|
|
|
|
echo "🚀 MYP System startet in Docker-Container..."
|
|
|
|
# Umgebungsvariablen setzen
|
|
export MYP_PORT=${MYP_PORT:-5000}
|
|
export MYP_HOST=${MYP_HOST:-0.0.0.0}
|
|
export MYP_SSL=${MYP_SSL:-false}
|
|
export MYP_ENV=${MYP_ENV:-production}
|
|
|
|
# SSL-Zertifikate generieren falls erforderlich
|
|
if [ "${MYP_SSL}" = "true" ] && [ ! -f /app/ssl/server.crt ]; then
|
|
echo "🔐 Generiere SSL-Zertifikate..."
|
|
mkdir -p /app/ssl
|
|
openssl req -x509 -newkey rsa:4096 -keyout /app/ssl/server.key -out /app/ssl/server.crt -days 365 -nodes \
|
|
-subj "/C=DE/ST=Berlin/L=Berlin/O=Mercedes-Benz/OU=TBA-Marienfelde/CN=myp-system"
|
|
chmod 600 /app/ssl/server.key
|
|
chmod 644 /app/ssl/server.crt
|
|
echo "✅ SSL-Zertifikate erstellt"
|
|
fi
|
|
|
|
# Datenbank initialisieren
|
|
echo "🗄️ Initialisiere Datenbank..."
|
|
cd /app
|
|
|
|
# Sicherstellen dass database-Verzeichnis existiert
|
|
mkdir -p /app/database
|
|
|
|
# Datenbank initialisieren
|
|
python -c "from models import init_database; init_database()" 2>/dev/null || echo "Datenbank bereits initialisiert"
|
|
|
|
# Log-Verzeichnisse erstellen
|
|
mkdir -p /app/logs/app /app/logs/admin /app/logs/scheduler /app/logs/hardware_integration
|
|
|
|
# Uploads-Verzeichnis
|
|
mkdir -p /app/uploads /app/static/uploads
|
|
|
|
# Container-Informationen
|
|
echo "📊 Container-Informationen:"
|
|
echo " 🏷️ Container: $(hostname)"
|
|
echo " 🌐 Host: ${MYP_HOST}"
|
|
echo " 🚪 Port: ${MYP_PORT}"
|
|
echo " 🔒 SSL: ${MYP_SSL}"
|
|
echo " 🛠️ Umgebung: ${MYP_ENV}"
|
|
echo " 🐍 Python: $(python --version)"
|
|
|
|
# Basis-Health-Check
|
|
echo "🔍 System-Check..."
|
|
python -c "import flask; print(f'✅ Flask {flask.__version__} verfügbar')"
|
|
python -c "import sqlalchemy; print(f'✅ SQLAlchemy {sqlalchemy.__version__} verfügbar')"
|
|
|
|
echo "🎯 MYP System bereit - starte Anwendung..."
|
|
|
|
# Anwendung starten
|
|
exec "$@" |