Volume-Berechtigungen stimmen nicht
VolumeUidAuditMismatch❓Was bedeutet das?
Ein Docker-Container braucht zur Laufzeit ein Verzeichnis oder Volume auf dem Host (z.B. für seine Logs oder seine Datenbank). Der Audit hat gefunden: das Verzeichnis fehlt oder gehört einem anderen Benutzer als der Container selbst.
Beispiel: Der Container tasmota läuft intern als User 1000 und will nach /app/logs schreiben. Wenn das gemountete Host-Verzeichnis /srv/eplamat/tasmota-updater/logs aber dem User root gehört (UID 0) — oder gar nicht existiert — kann er nicht schreiben.
⚠️Wie schlimm ist es?
Aktuell läuft alles weiter. Bind-Mounts werden beim Container-Start an einen Inode gebunden — solange der Container nicht neu startet, merkt er das Problem nicht.
Beim nächsten Neustart (z.B. weil das wöchentliche Image-Update Mi 04:00 läuft) bindet Docker an die neue Host-Situation. Ergebnis: Container kann nicht mehr schreiben, schweigt aber. Logs, Metriken oder Konfigs gehen still verloren.
Deshalb: vor dem nächsten Mittwoch fixen.
🔧Was tun?
- Audit von Hand laufen lassen, um die echten Treffer zu sehen:
Du siehst Zeilen wiesudo systemctl start eplamat-volume-audit.service journalctl -u eplamat-volume-audit.service --since "2 minutes ago" \ | grep -E "MISMATCH|FAIL:"tasmota | 1000 | /srv/.../logs | ? | MISMATCH. Wichtig sind die Spalten: Container | Container-UID | Host-Pfad | Owner-UID. - Für jedes Mismatch: Verzeichnis auf dem Host anlegen (falls fehlt) und auf die richtige UID setzen:
sudo mkdir -p <HOST-PFAD> sudo chown <CONTAINER-UID>:<CONTAINER-UID> <HOST-PFAD> touch <HOST-PFAD>/.gitkeep # pinnt im Repo, verhindert Re-Auftauchen - Container neu erstellen (Recreate, nicht nur Restart — sonst behält Docker den alten Mount-Inode):
cd /srv/eplamat docker compose up -d --force-recreate <SERVICE-NAME> - Audit erneut triggern, Metrik muss auf 0 gehen:
sudo systemctl start eplamat-volume-audit.service curl -s http://localhost:9092/metrics | grep volume_uid_audit_mismatches # erwartet: volume_uid_audit_mismatches{...} 0 - Der Alert cleared nach ca. 5 Minuten (Prometheus
for: 5m-Fenster).
🆘Wenn das nicht klappt
Kopier diesen Alert mit dem Link einfach in einen Claude-Chat und frag nach Hilfe. Claude hat Zugriff auf den Server und kann das mit dir zusammen durchgehen.
Suchpfad in CLAUDE.md: § Named-Volume UID-Mismatch silent data loss.