diff --git a/compose.dev.yml b/compose.dev.yml new file mode 100644 index 0000000..36f692e --- /dev/null +++ b/compose.dev.yml @@ -0,0 +1,19 @@ +services: + web: + build: . # Baut das Image, falls es nicht existiert (z.B. für Dependencies) + container_name: medien-dl-dev + ports: + - "5000:5000" + volumes: + # WICHTIG: Mountet den gesamten aktuellen Ordner in das /app Verzeichnis im Container. + # Code-Änderungen auf dem Host sind sofort im Container sichtbar. + - .:/app + # Die Daten-Volumes bleiben gleich, um persistent zu sein. + - ./data/download_history.json:/app/download_history.json + - ./data/stats.json:/app/stats.json + - ./data/sc_downloads:/app/sc_downloads + env_file: + - .env + # Überschreibt den CMD-Befehl aus dem Dockerfile, um den Flask-Entwicklungsserver zu nutzen. + # Dieser startet bei Code-Änderungen automatisch neu (Hot-Reloading). + command: flask run --host=0.0.0.0 --port=5000 \ No newline at end of file diff --git a/compose.prod.yml b/compose.prod.yml new file mode 100644 index 0000000..fd381ab --- /dev/null +++ b/compose.prod.yml @@ -0,0 +1,14 @@ +services: + web: + image: ghcr.io/mrunknownde/medien-dl:main + container_name: medien-dl-prod + ports: + - "5000:5000" + volumes: + # Nur die persistenten Daten werden gemountet. KEIN Quellcode! + - ./data/download_history.json:/app/download_history.json + - ./data/stats.json:/app/stats.json + - ./data/sc_downloads:/app/sc_downloads + env_file: + - .env + restart: unless-stopped # Stellt sicher, dass der Container bei Fehlern oder nach einem Neustart wieder hochfährt. \ No newline at end of file diff --git a/compose.yml b/compose.yml deleted file mode 100644 index b71b65d..0000000 --- a/compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - web: - build: . # Baut das Image aus dem Dockerfile im aktuellen Verzeichnis - container_name: medien-dl # Optional: Gibt dem Container einen festen Namen - ports: - - "5000:5000" # Mappt Port 5000 des Hosts auf Port 5000 des Containers - volumes: - # Mountet die History-Datei vom Host in den Container (persistent) - - ./data/download_history.json:/app/download_history.json - # Mountet die Statistik-Datei vom Host in den Container (persistent) - - ./data/stats.json:/app/stats.json - # Mountet den Download-Ordner vom Host in den Container (persistent) - # Achtung: Stelle sicher, dass die Berechtigungen passen! - - ./data/sc_downloads:/app/sc_downloads - env_file: - - .env # Lädt Umgebungsvariablen aus der .env-Datei im Host-System - restart: unless-stopped # Startet den Container neu, außer er wurde manuell gestoppt \ No newline at end of file