diff --git a/README.md b/README.md index 8308f3e..0866b84 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,65 @@ Spart Bandbreite, Zeit und unnötige Layer-Downloads --- +## 🧠 Funktionsweise + +1. Alle `*compose*.yml` Dateien werden rekursiv gefunden +2. Verarbeitung erfolgt alphabetisch (deterministische Reihenfolge) +3. Für jeden Stack: + - Compose-Konfiguration wird ausgewertet (docker compose config) + - Verwendete Images werden extrahiert + - Für jedes Image: + - Remote-Digest wird aus der Registry abgefragt + - Lokaler Digest wird ermittelt + - Vergleich lokal vs. remote +4. Entscheidungslogik: + - ❌ Kein Unterschied → kein Pull, kein Restart + - ✅ Digest unterschiedlich → Image wird gepullt +5. Wenn mindestens ein Service ein Update hat: + - kompletter Stack wird neu deployed (docker compose up -d) + +--- + +## ⚡ Verhalten im Detail +- Kein unnötiger Netzwerk-Traffic (kein blindes docker pull) +- Updates erfolgen nur bei tatsächlichen Änderungen +- Mehrere Services im Stack → einheitlicher Redeploy, kein Teilzustand +- Optional: Dry-Run zeigt exakt diese Entscheidungen ohne Ausführung + +--- + +## 🗑️ Prune / Cleanup + +Nach Abschluss der Updates kann optional ein Docker Cleanup durchgeführt werden. +Dabei werden ungenutzte Ressourcen entfernt: + +- `docker image prune` + → entfernt ungenutzte („dangling“) Images + +- `docker image prune -a` + → entfernt alle Images, die von keinem Container verwendet werden + +- `docker container prune` + → entfernt gestoppte Container + +- `docker volume prune` + → entfernt ungenutzte Volumes + +- `docker network prune` + → entfernt ungenutzte Netzwerke + +--- + +## 🔔 ntfy Prioritäten + +| Zustand | Priorität | +|----------------------|----------| +| ✔️ Keine Updates | 1 | +| 🔄 Updates vorhanden | 3 | +| ❌ Fehler | 5 | + +--- + ## ⚙️ Konfiguration (`config.conf`) ```bash @@ -169,65 +228,6 @@ chmod +x script.sh --- -## 🧠 Funktionsweise - -1. Alle `*compose*.yml` Dateien werden rekursiv gefunden -2. Verarbeitung erfolgt alphabetisch (deterministische Reihenfolge) -3. Für jeden Stack: - - Compose-Konfiguration wird ausgewertet (docker compose config) - - Verwendete Images werden extrahiert - - Für jedes Image: - - Remote-Digest wird aus der Registry abgefragt - - Lokaler Digest wird ermittelt - - Vergleich lokal vs. remote -4. Entscheidungslogik: - - ❌ Kein Unterschied → kein Pull, kein Restart - - ✅ Digest unterschiedlich → Image wird gepullt -5. Wenn mindestens ein Service ein Update hat: - - kompletter Stack wird neu deployed (docker compose up -d) - ---- - -## ⚡ Verhalten im Detail -- Kein unnötiger Netzwerk-Traffic (kein blindes docker pull) -- Updates erfolgen nur bei tatsächlichen Änderungen -- Mehrere Services im Stack → einheitlicher Redeploy, kein Teilzustand -- Optional: Dry-Run zeigt exakt diese Entscheidungen ohne Ausführung - ---- - -## 🗑️ Prune / Cleanup - -Nach Abschluss der Updates kann optional ein Docker Cleanup durchgeführt werden. -Dabei werden ungenutzte Ressourcen entfernt: - -- `docker image prune` - → entfernt ungenutzte („dangling“) Images - -- `docker image prune -a` - → entfernt alle Images, die von keinem Container verwendet werden - -- `docker container prune` - → entfernt gestoppte Container - -- `docker volume prune` - → entfernt ungenutzte Volumes - -- `docker network prune` - → entfernt ungenutzte Netzwerke - ---- - -## 🔔 ntfy Prioritäten - -| Zustand | Priorität | -|----------------------|----------| -| ✔️ Keine Updates | 1 | -| 🔄 Updates vorhanden | 3 | -| ❌ Fehler | 5 | - ---- - ## 📄 Beispiel Ausgabe ```