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
Festplattennutzung prüfen
sudo /usr/share/gitlab-runner/clear-docker-cache space 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:
Unbenutzte Container und Images löschen
sudo /usr/share/gitlab-runner/clear-docker-cache prune Unbenutzte Container, Images und Volumes löschen
sudo /usr/share/gitlab-runner/clear-docker-cache prune-volumes Verfügbare Optionen
| Option | Beschreibung |
|---|---|
help | Hilfe zum Befehl anzeigen |
space | Festplattennutzung ausgeben |
prune | Unbenutzte Container und Images löschen |
prune-volumes | Unbenutzte Container, Images und Volumes löschen |
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.
Unbenutzte Container und Images
0 0 * * * sudo /usr/share/gitlab-runner/clear-docker-cache prune
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ └──── 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