.
This commit is contained in:
118
README.md
118
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`)
|
## ⚙️ Konfiguration (`config.conf`)
|
||||||
|
|
||||||
```bash
|
```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
|
## 📄 Beispiel Ausgabe
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user