From b8842cf98eda8b0c2d0f4a645a83e4a0fb7b2852 Mon Sep 17 00:00:00 2001 From: Lars Date: Fri, 8 May 2026 09:22:03 +0200 Subject: [PATCH] =?UTF-8?q?feat(docker):=20Mediumpfade=20=C3=BCber=20.env?= =?UTF-8?q?=20(SHINKAN=5FMEDIA=5FHOST,=20MEDIA=5FROOT)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bind-Mount statt Named-Volumes für Backend-/app/media; MEDIA_ROOT wird an den Container durchgereicht (entspricht FastAPI). .env.example: MEDIA_DIR durch SHINKAN_MEDIA_HOST/MEDIA_ROOT ersetzt, Kommentare für Prod/Dev. Co-authored-by: Cursor --- .env.example | 9 ++++++++- docker-compose.dev-env.yml | 7 ++++--- docker-compose.yml | 5 +++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index cce781b..31f5813 100644 --- a/.env.example +++ b/.env.example @@ -12,6 +12,8 @@ # APP_URL=https://shinkan.jinkendo.de # ALLOWED_ORIGINS=https://shinkan.jinkendo.de # ENVIRONMENT=production +# SHINKAN_MEDIA_HOST=/shinkan-media +# MEDIA_ROOT=/app/media # ─── Typische Werte DEV (docker-compose.dev-env.yml) ───────────────────────── # DB_NAME=shinkan_dev @@ -20,6 +22,8 @@ # APP_URL=https://dev.shinkan.jinkendo.de # ALLOWED_ORIGINS=https://dev.shinkan.jinkendo.de,http://192.168.2.49:3098 # ENVIRONMENT=development +# SHINKAN_MEDIA_HOST=/shinkan-media/dev +# MEDIA_ROOT=/app/media # ─── Ab hier: eine ausfüllbare Vorlage (bei uns meist Prod-Defaults) ─────────── DB_HOST=postgres @@ -46,7 +50,10 @@ APP_URL=https://shinkan.jinkendo.de ALLOWED_ORIGINS=https://shinkan.jinkendo.de ENVIRONMENT=production -MEDIA_DIR=/app/media +# Medien (Docker Compose): SHINKAN_MEDIA_HOST = Verzeichnis auf dem Host (Bind-Mount), +# MEDIA_ROOT = gleicher Pfad im Container (muss mit dem Mount-Ziel übereinstimmen — FastAPI). +SHINKAN_MEDIA_HOST=/shinkan-media +MEDIA_ROOT=/app/media MEDIAWIKI_API_URL=https://karatetrainer.net/api.php MEDIAWIKI_USER=Jinkendo diff --git a/docker-compose.dev-env.yml b/docker-compose.dev-env.yml index 231da53..f41e39e 100644 --- a/docker-compose.dev-env.yml +++ b/docker-compose.dev-env.yml @@ -1,5 +1,6 @@ # Keine festen container_name — Compose-Namen haben Projektprefix (-postgres-1). -# Gleiche Variablennamen wie docker-compose.yml; andere Werte in einer eigenen .env neben dieser Datei. +# Medien: In .env SHINKAN_MEDIA_HOST (Host-Pfad) und optional MEDIA_ROOT (Container-Pfad) setzen. +# Default Host /shinkan-media/dev — Verzeichnis ggf. anlegen oder Compose legt es an. services: postgres: @@ -43,8 +44,9 @@ services: MEDIAWIKI_CATEGORY_SKILLS: "${MEDIAWIKI_CATEGORY_SKILLS:-Fähigkeitsbeschreibung}" MEDIAWIKI_CATEGORY_METHODS: "${MEDIAWIKI_CATEGORY_METHODS:-Methodenbeschreibung}" MEDIAWIKI_CATEGORY_MODELS: "${MEDIAWIKI_CATEGORY_MODELS:-Reifegradmodelle}" + MEDIA_ROOT: "${MEDIA_ROOT:-/app/media}" volumes: - - dev-shinkan-media:/app/media + - ${SHINKAN_MEDIA_HOST:-/shinkan-media/dev}:${MEDIA_ROOT:-/app/media} ports: - "8098:8000" depends_on: @@ -70,7 +72,6 @@ services: volumes: dev-shinkan-db-data: - dev-shinkan-media: networks: dev-shinkan-network: diff --git a/docker-compose.yml b/docker-compose.yml index b41c62e..4231662 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,8 +52,10 @@ services: MEDIAWIKI_CATEGORY_SKILLS: "${MEDIAWIKI_CATEGORY_SKILLS:-Fähigkeitsbeschreibung}" MEDIAWIKI_CATEGORY_METHODS: "${MEDIAWIKI_CATEGORY_METHODS:-Methodenbeschreibung}" MEDIAWIKI_CATEGORY_MODELS: "${MEDIAWIKI_CATEGORY_MODELS:-Reifegradmodelle}" + # Medien: Host-Pfad SHINKAN_MEDIA_HOST (in .env), Ziel im Container MEDIA_ROOT. + MEDIA_ROOT: "${MEDIA_ROOT:-/app/media}" volumes: - - shinkan-media:/app/media + - ${SHINKAN_MEDIA_HOST:-/shinkan-media}:${MEDIA_ROOT:-/app/media} ports: - "8003:8000" depends_on: @@ -79,7 +81,6 @@ services: volumes: shinkan-db-data: - shinkan-media: networks: shinkan-network: