GitLab Runner Garbage Collection
Um nicht verwendete Docker Container, Netzwerke und Images freizugeben besteht die Möglichkeit diese mit einem einfachen Befehl vollständig zu entfernen. Durch das Entfernen der ungenutzten Ressourcen wird Festplattenspeicher freigegeben.
Voraussetzungen
- GitLab Runner
- SSH-Zugriff
System Prune durchführen
Um einen Docker System Prune auf dem GitLab Runner durchzuführen, stellen Sie eine SSH-Verbindung mit Ihrem privilegierten SSH-Benutzer her. Anschließend kann mit folgendem Befehl der Docker System Prune durchgeführt werden:
sudo docker system prune [OPTIONEN] Beispiel:
sudo docker system prune -a -f --volumes Verfügbare Optionen
| Option | Beschreibung |
|---|---|
-a, —all | Entfernt alle unbenutzten Container, Netzwerke und Images |
-f, --force | Keine erneute Bestätigung erforderlich |
--volumes | Anonyme und unbenutzte Volumes entfernen |
Sofern der SSH-Befehl nicht von Ihrem SSH-Benutzer durchgeführt werden kann, kontaktieren Sie bitte unseren Support, sodass Ihrem Benutzer die notwendigen Rechte vergeben werden können. (Managed)
Docker Build Cache leeren
Jeder Build eines Docker-Images besteht aus mehreren Schritten (Layers) – z. B. Installation von Abhängigkeiten, Kopieren von Dateien oder Konfiguration. Docker speichert diese Layer in einem Cache, damit bei zukünftigen Builds bspw. nur veränderte Schritte neu ausgeführt werden müssen. Dieser kann mit folgendem Befehl geleert werden:
sudo docker buildx prune -a -f Verfügbare Optionen
| Option | Beschreibung |
|---|---|
-a, —all | Entfernt den gesamten unbenutzten Docker Build Cache |
-f, --force | Keine erneute Bestätigung erforderlich |
Cronjob einrichten
Sofern Sie den Docker System Prune als Cronjob einrichten möchten, der zur gewünschten Zeit automatisch ausgeführt wird, können Sie den Cronjob in unserem Kundencenter einrichten. Nutzen Sie hierfür unseren Hilfecenter-Artikel unter Cronjobs.
Alternativ kann per crontab -e ein Cronjob auf dem GitLab Runner selbst angelegt werden. Hierfür können Sie unsere Standard-Konfiguration nutzen oder alternativ diese nach Ihrem Wunsch bearbeiten.
System Prune
0 0 * * * sudo docker system prune -a -f --volumes
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59) Anschließend können Sie die Datei speichern und der Cronjob wird jede Nacht um 00:00 Uhr (UTC) ausgeführt.
Docker Build Cache
0 0 * * * sudo docker buildx prune -a -f
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59) Festplattenspeicher prüfen
Sofern durch das System Prune nicht genügend Speicher freigegeben wird, handelt es sich um genutzte Daten und Dateien, die für den Betrieb des Runners notwendig sind. Wenn dieser Fall eintritt, empfehlen wir, die Festplatte zu vergrößern. Siehe auch: Festplatte vergrößern