fix(worker): mount host devices for disc detection
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
This commit is contained in:
Hitonabi
2026-07-23 12:15:55 +02:00
parent 9c010d2dc5
commit 61af353559
8 changed files with 188 additions and 4 deletions
+50
View File
@@ -0,0 +1,50 @@
#!/bin/bash
# Installations-Skript für Arcane VM (Debian 12)
# Auf der Arcane VM ausführen
set -e
echo "=== Rippy udev-Setup für Arcane VM ==="
# 1. udev-Regel installieren
echo "Installiere udev-Regel..."
cp 99-disc-ripper.rules /etc/udev/rules.d/
echo "✅ /etc/udev/rules.d/99-disc-ripper.rules installiert"
# 2. udev-Daemon in Worker-Container kopieren
echo "Kopiere udev-Daemon in Worker-Container..."
docker cp udev_daemon.py rippy-worker:/app/udev/
docker cp 99-disc-ripper.rules rippy-worker:/etc/udev/rules.d/
docker cp rippy-udev.service rippy-worker:/etc/systemd/system/
echo "✅ udev-Daemon und Regeln in Container kopiert"
# 3. udev-Regel neu laden (im Host)
echo "Lade udev-Regeln im Host neu..."
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=block
echo "✅ udev-Regeln im Host neu geladen"
# 4. udev-Regel in Container neu laden
echo "Lade udev-Regeln im Container neu..."
docker exec -i rippy-worker udevadm control --reload-rules
docker exec -i rippy-worker udevadm trigger --subsystem-match=block
echo "✅ udev-Regeln im Container neu geladen"
# 5. Service aktivieren (optional - wenn im Container als systemd läuft)
if docker exec -i rippy-worker which systemctl > /dev/null 2>&1; then
echo "Aktiviere systemd-Service..."
docker exec -i rippy-worker systemctl daemon-reload
docker exec -i rippy-worker systemctl enable rippy-udev
echo "✅ systemd-Service aktiviert"
fi
echo "=== Setup abgeschlossen ==="
echo ""
echo "Testen:"
echo " 1. Leg eine CD/DVD ein"
echo " 2. Logs prüfen: docker logs -f rippy-worker"
echo " 3. Symlinks: docker exec rippy-worker ls -la /dev/disc"
echo " 4. Devices: docker exec rippy-worker ls -la /dev/cdrom /dev/dvd /dev/sr0"
echo ""
echo "Hinweis: /dev/disc ist ein Shared-Mount, der udev-Daemon erstellt Symlinks"
echo " mit UUID/Serial für jedes erkannte Laufwerk."