61af353559
Ampel / ampel (push) Failing after 30s
- Add direct device mounts (cdrom, dvd, sr0) to worker - Add SYS_ADMIN capability for udev access - Install isoinfo and udev in worker container - Add pyudev for device monitoring - Update udev rules with correct paths
52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# Rippy udev-Setup
|
|
|
|
## Problem
|
|
Rippy findet kein Laufwerk, obwohl eines am Host angeschlossen ist.
|
|
|
|
## Ursache
|
|
Die `docker-compose.yml` nutzte anonyme Volumes für `/dev/disc`, `/dev/cdrom`, `/dev/dvd`:
|
|
```yaml
|
|
volumes:
|
|
- disc:/dev/disc # ❌ Anonymes Volume, leer
|
|
```
|
|
|
|
## Lösung
|
|
Direkte Mounts vom Host in den Worker-Container:
|
|
|
|
### 1. docker-compose.yml anpassen
|
|
```yaml
|
|
volumes:
|
|
- /dev/cdrom:/dev/cdrom:ro
|
|
- /dev/dvd:/dev/dvd:ro
|
|
- /dev/sr0:/dev/sr0:ro
|
|
- disc:/dev/disc # ✅ Shared-Mount für udev-Symlinks
|
|
```
|
|
|
|
### 2. Worker-Dockerfile erweitern
|
|
- `isoinfo` für Disc-Typ-Erkennung
|
|
- `udev` für Geräteverwaltung
|
|
|
|
### 3. udev-Regel installieren
|
|
Kopiere `99-disc-ripper.rules` nach `/etc/udev/rules.d/`
|
|
|
|
### 4. udev-Daemon ausführen
|
|
Der Daemon (`udev_daemon.py`) läuft im Worker-Container und erstellt Symlinks mit UUID/Serial.
|
|
|
|
## Installation auf Arcane VM
|
|
|
|
```bash
|
|
cd /path/to/rippy/udev
|
|
bash install-arcane.sh
|
|
```
|
|
|
|
## Testen
|
|
1. Leg eine CD/DVD ein
|
|
2. Logs prüfen: `docker logs -f rippy-worker`
|
|
3. Symlinks: `docker exec rippy-worker ls -la /dev/disc`
|
|
4. Devices: `docker exec rippy-worker ls -la /dev/cdrom /dev/dvd /dev/sr0`
|
|
|
|
## Dateien
|
|
- `99-disc-ripper.rules` — udev-Regel für Einwurf/Auswurf
|
|
- `udev_daemon.py` — Daemon für Disc-Erkennung
|
|
- `rippy-udev.service` — systemd-Service (optional)
|
|
- `install-arcane.sh` — Installations-Skript für Arcane VM |