chore: complete update
This commit is contained in:
48
.archive/docker/DOCKER-TODO.md
Normal file
48
.archive/docker/DOCKER-TODO.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Optimierungsvorschläge für die Docker-Compose Umgebung
|
||||
|
||||
## ToDo-Liste
|
||||
|
||||
- [ ] **Datenbank Passwörter & Secrets absichern**
|
||||
- Datenbankpasswörter nicht im Klartext in der YAML speichern, sondern `secrets`-Mechanismus verwenden.
|
||||
- `.env` Werte für Datenbanken statt statischer Angaben verwenden.
|
||||
- Beispiel: `MYSQL_ROOT_PASSWORD_FILE` und `MYSQL_PASSWORD_FILE` setzen und Secrets einbinden.
|
||||
|
||||
- [ ] **Performance & Caching verbessern**
|
||||
- `cache_from` und `cache_to` im Build-Prozess (BuildKit) einrichten.
|
||||
- Für PHP einen dedizierten Volume für den Composer-Cache nutzen.
|
||||
- Nginx-Cache als eigenes Volume deklarieren.
|
||||
- Die Vendor-Ordner aus Mounts ausschließen oder gesondert berücksichtigen, damit lokale Änderungen keine Build-Optimierungen verhindern.
|
||||
|
||||
- [ ] **Netzwerk- und Bind-Mounts optimieren**
|
||||
- Bei Nginx nur das Public-Verzeichnis (`public/`) einbinden, nicht das gesamte Projektverzeichnis.
|
||||
- Nicht benötigte Verzeichnisse (wie z.B. `vendor/`) explizit ausschließen.
|
||||
- Healthchecks und Startbedingungen konsistent definieren.
|
||||
|
||||
- [ ] **Image-Versionen festlegen**
|
||||
- Keine `latest`-Images nutzen, sondern möglichst immer eine feste Version angeben (z.B. `mariadb:11.3` statt `mariadb:latest`).
|
||||
- Gilt auch für Redis, PHP und weitere Services.
|
||||
|
||||
- [ ] **Ressourcenlimits setzen**
|
||||
- `deploy.resources` für Speicher und CPU bei allen Services, nicht nur beim Worker.
|
||||
|
||||
- [ ] **Security-Best-Practices**
|
||||
- Nicht produktive Ports (z.B. bei Entwicklung) durch `.env` variabel und gezielt auf localhost begrenzen.
|
||||
- Feste Netzwerkbereiche und eigene Netzwerke für sensible Kommunikation (z.B. Backend, Cache).
|
||||
|
||||
- [ ] **Multi-Stage Builds in Dockerfiles nutzen**
|
||||
- Die Images im PHP- und Worker-Bereich sollten über Multi-Stage-Builds möglichst klein gehalten werden (z.B. `FROM php:X-cli AS base`, dann Production-Image).
|
||||
|
||||
- [ ] **Environment-Konfiguration für Dev/Prod trennen**
|
||||
- Eine `docker-compose.override.yml` für Entwicklung mit vollem Source-Mount und Debug-Konfiguration anlegen.
|
||||
- Für Produktion keine Source-Mounts, keine Debug-Variablen, optimierte Settings.
|
||||
|
||||
- [ ] **Log-Rotation aktivieren**
|
||||
- Logging-Driver auf `json-file` einstellen und Optionen für Größe/Rotation setzen.
|
||||
|
||||
- [ ] **Monitoring & Healthchecks**
|
||||
- Für alle Services sinnvolle Healthchecks ergänzen.
|
||||
- (Optional) Monitoring und/oder Alerting ergänzen.
|
||||
|
||||
---
|
||||
|
||||
**Tipp:** Die oben stehenden Punkte können Schritt für Schritt umgesetzt und pro optimiertem Bereich abgehakt werden.
|
||||
Reference in New Issue
Block a user