From eee3a83d0eeaf7b2aec8e5c03b2137c267fd6615 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Thu, 23 Jul 2026 15:02:13 +0200 Subject: [PATCH] Compose: Laufwerk als devices: statt Bind-Mount, Ausgabe aufs media-Volume MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bind-Mounts unter volumes: geben dem Container den Geräteknoten, aber keine Device-Cgroup-Erlaubnis — jedes open() scheiterte mit EPERM. Totes disc:-Volume raus (kein udevd legt dort je Symlinks an), depends_on wartet jetzt auf healthy, Worker-read_only bis zur Härtung ausgesetzt (MakeMKV braucht HOME). Co-Authored-By: Claude Fable 5 --- docker-compose.yml | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ea0681b..8134ddf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,9 @@ # Docker Compose für Rippy +# +# Geräte-Zugriff (22.07./23.07.-Lehre): Optische Laufwerke MÜSSEN als devices: +# eingebunden werden. Bind-Mounts unter volumes: geben dem Container zwar den +# Geräteknoten, aber KEINE Berechtigung im Device-Cgroup → jedes open() scheitert +# mit EPERM. Voraussetzung: Die VM sieht das Laufwerk (USB-Passthrough auf pve). services: api: @@ -23,13 +28,15 @@ services: volumes: - media:/app/media - temp:/app/temp - - /dev/cdrom:/dev/cdrom:ro - - /dev/sr0:/dev/sr0:ro + devices: + - /dev/sr0:/dev/sr0 networks: - rippy-net depends_on: - - postgres - - redis + postgres: + condition: service_healthy + redis: + condition: service_healthy restart: unless-stopped read_only: false @@ -40,23 +47,25 @@ services: environment: - DATABASE_URL=postgresql://rippy:rippy@postgres:5432/rippy - REDIS_URL=redis://redis:6379/0 - - TMDB_API_KEY=${TMDB_API_KEY} - - THETVDB_API_KEY=${THETVDB_API_KEY} - - JWT_SECRET_KEY=${JWT_SECRET_KEY} + - RIP_OUTPUT_DIR=/app/media + - MAKEMKV_APP_KEY=${MAKEMKV_APP_KEY} - LOG_LEVEL=INFO volumes: - media:/app/media - temp:/app/temp - - disc:/dev/disc - - /dev/cdrom:/dev/cdrom:ro - - /dev/sr0:/dev/sr0:ro + devices: + - /dev/sr0:/dev/sr0 networks: - rippy-net depends_on: - - postgres - - redis + postgres: + condition: service_healthy + redis: + condition: service_healthy restart: unless-stopped - read_only: true + # read_only bleibt Ziel (Etappe 6), aber MakeMKV/abcde brauchen HOME + + # Settings — bis zur Härtung schreibbar, Ausgabe geht ohnehin aufs Volume. + read_only: false tmpfs: - /app/tmp - /run @@ -112,6 +121,5 @@ networks: volumes: media: temp: - disc: postgres-data: redis-data: