infrastruktur:rz:docker:best-practices
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| infrastruktur:rz:docker:best-practices [2020-09-11 23:39] – hase | infrastruktur:rz:docker:best-practices [2020-09-18 21:08] (aktuell) – hase | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| {{tag> storage-server infrastructure shackoperations }} | {{tag> storage-server infrastructure shackoperations }} | ||
| Zeile 5: | Zeile 5: | ||
| | Version | Bearbeiter | Änderungsdatum | Änderungsbemerkung | | | Version | Bearbeiter | Änderungsdatum | Änderungsbemerkung | | ||
| | 0.1 | hase | 11-09-2020 | Seite angelegt | | | 0.1 | hase | 11-09-2020 | Seite angelegt | | ||
| - | | 0.2 | hase | 12-09-2020 | Resourcenplanung/ | + | | 0.2 | hase | 12-09-2020 | Resourcenplanung/ |
| + | | 0.3 | hase | 12-09-2020 | Trennung nach Compose File und Docker Image | | ||
| ====== Best Practices für Docker Images im shack ====== | ====== Best Practices für Docker Images im shack ====== | ||
| - | Hi, hier sollen alle Best Practices für shack Docker Images aufgeschrieben werden. | + | Hi, hier sollen alle Best Practices für shack Docker Images |
| - | ====== Must-Haves | + | ====== Compose Files ====== |
| - | ===== Healthcheck | + | ===== Must-Haves ===== |
| + | ==== Healthcheck ==== | ||
| Ein Docker Container sollte einen Healthcheck definiert haben. Siehe hierzu | Ein Docker Container sollte einen Healthcheck definiert haben. Siehe hierzu | ||
| - [[https:// | - [[https:// | ||
| - [[https:// | - [[https:// | ||
| - | ===== Resourcenplanung | + | ==== Resourcenplanung ==== |
| Ein Docker Container sollte immer eine Begrenzung der CPU und RAM Resourcen bekommen. Ohne Resourcensteuerung werden dem Container alle CPUs und jeglicher RAM angezeigt; diesen kann er dann auch allokieren (z.B. bei einem Memory Leak wird er das tun) | Ein Docker Container sollte immer eine Begrenzung der CPU und RAM Resourcen bekommen. Ohne Resourcensteuerung werden dem Container alle CPUs und jeglicher RAM angezeigt; diesen kann er dann auch allokieren (z.B. bei einem Memory Leak wird er das tun) | ||
| < | < | ||
| Zeile 25: | Zeile 27: | ||
| </ | </ | ||
| - | ===== Passwörter / Secrets | + | ==== Passwörter / Secrets ==== |
| Passwörter müssen in ein zweites Compose File (docker-compose.secret.yml) eingetragen und mit < | Passwörter müssen in ein zweites Compose File (docker-compose.secret.yml) eingetragen und mit < | ||
| Zeile 31: | Zeile 33: | ||
| - | ===== Registry ===== | + | ===== Optional ===== |
| - | Die Docker Images sollten alle unter einem Ort verfügbar sein. Momentan existiert eine Gruppe auf gitlab.com | + | ==== Container ohne Netzwerk ==== |
| - | [[https:// | + | |
| - | + | ||
| - | ===== docker-compose Example File ===== | + | |
| - | Es muss ein docker-compose.yml Beispiel existieren. | + | |
| - | + | ||
| - | + | ||
| - | ====== Optional | + | |
| - | ===== CI ===== | + | |
| - | Die Docker Images sollten alle über eine CI Pipeline automatisch über Gitlab Runner gebaut werden. In jedem Git Repo für ein Docker Image muss daher eine .gitlab-ci.yml vorhanden sein. | + | |
| - | + | ||
| - | ===== Service-Handling ===== | + | |
| - | Das Service-Handling in Containern kann über viele Wege abgehandelt werden. Empfohlen ist als Entrypoint entweder | + | |
| - | * direkt den Befehlsaufruf mit Parametern oder | + | |
| - | * ein Shell-Skript, | + | |
| - | + | ||
| - | ===== Externe Abhängigkeiten ===== | + | |
| - | Wenn ein Container eine externe Abhängigkeit hat darf diese nicht hart ausgelegt sein. Crashed der Container in Abwesenheit der Abhängigkeit muss das Design überarbeitet werden. | + | |
| - | + | ||
| - | + | ||
| - | ===== Container ohne Netzwerk | + | |
| Wenn ein Container kein Netzwerk braucht (watchtower oder autoheal) kann mit Hilfe des Parameters network_mode das Netzwerk ausgeschaltet werden. Dann wird kein " | Wenn ein Container kein Netzwerk braucht (watchtower oder autoheal) kann mit Hilfe des Parameters network_mode das Netzwerk ausgeschaltet werden. Dann wird kein " | ||
| < | < | ||
| Zeile 60: | Zeile 42: | ||
| </ | </ | ||
| + | ---- | ||
| + | ====== Docker Image ====== | ||
| + | ===== Must-Haves ===== | ||
| + | ==== docker-compose Example File ==== | ||
| + | Es muss ein docker-compose.yml Beispiel existieren. | ||
| + | ==== Externe Abhängigkeiten ==== | ||
| + | Wenn ein Container eine externe Abhängigkeit hat darf diese nicht hart ausgelegt sein. Crashed der Container in Abwesenheit der Abhängigkeit muss das Design überarbeitet werden. | ||
| + | ===== Optional ===== | ||
| + | ==== Registry ==== | ||
| + | Die Docker Images sollten alle unter einem Ort verfügbar sein. Momentan existiert eine Gruppe auf gitlab.com | ||
| + | [[https:// | ||
| + | ==== CI ==== | ||
| + | Die Docker Images sollten alle über eine CI Pipeline automatisch über Gitlab Runner gebaut werden. In jedem Git Repo für ein Docker Image muss daher eine .gitlab-ci.yml vorhanden sein. | ||
| + | ==== Service-Handling ==== | ||
| + | Das Service-Handling in Containern kann über viele Wege abgehandelt werden. Empfohlen ist als Entrypoint entweder | ||
| + | * direkt den Befehlsaufruf mit Parametern oder | ||
| + | * ein Shell-Skript, | ||
infrastruktur/rz/docker/best-practices.1599860366.txt.gz · Zuletzt geändert: von hase
