So bereinigen Sie regelmäßig Bilder, die über Jenkins „None“ sind

So bereinigen Sie regelmäßig Bilder, die über Jenkins „None“ sind

Vorwort

Wenn beim kontinuierlichen Code-Delivery-Prozess Jenkins zur Erstellung von Docker-Images verwendet wird, werden viele Zwischenimages mit dem Namen „None“ generiert. Diese Images sind nach Abschluss des gesamten Projektproduktionsprozesses von geringer Bedeutung. Sie beanspruchen außerdem Speicherplatz und müssen regelmäßig bereinigt werden. Die manuelle Bereinigung ist wirklich mühsam, daher wird regelmäßig bereinigt.

Jenkins ist eine leistungsstarke Anwendung, die eine kontinuierliche Integration und Bereitstellung von Projekten ermöglicht, unabhängig von der verwendeten Plattform. Es handelt sich um einen kostenlosen Quellcode, der jede Art von Build oder kontinuierlicher Integration verarbeiten kann. Die Integration mit Jenkins kann für verschiedene Test- und Bereitstellungstechniken verwendet werden. Jenkins ist eine Software, die kontinuierliche Integration ermöglicht.

Werfen wir einen Blick auf die ausführliche Einführung.

1. Manuelle Reinigung

Eine relativ einfache Bereinigungsmethode eignet sich zum manuellen Ausführen von Befehlen zum Bereinigen von Bildern, wenn ein einzelnes Nicht-Bild generiert wird. Führen Sie den folgenden Befehl aus:

docker rmi $(docker images -f "dangling=true" -q)

Da ich den Spiegel von none nicht lokal habe, kann ich bei der Ausführung nur den folgenden Effekt sehen

2. Aufräumen nach Abschluss des Projekts

Beim Erstellen eines CI-kompatiblen Projekts in Jenkins kann die Bereinigung nach Abschluss des Produktionsprozesses im Build-Ausführungsskript wie folgt festgelegt werden:

Das Skript lautet:

echo ---------------Klare-Bilder...------------------
clearImagesList=$(Docker-Bilder -f "dangling=true" -q)
wenn [ ! -n "$clearImagesList" ]; dann
echo "keine Bilder müssen bereinigt werden."
anders
docker rmi $(docker images -f "dangling=true" -q)
Echo „klarer Erfolg.“
fi

Wenn das Projekt erstellt ist, führen Sie dies aus, um das während des eigenen Erstellungsprozesses generierte None-Image zu löschen, sodass es seine eigenen Zwischenprodukte löschen kann.

Es gibt jedoch ein ernstes Problem. Wenn zwei oder mehr Projekte gleichzeitig erstellt werden, wirkt sich das Bereinigungsskript, das nach Abschluss des ersten Builds ausgeführt wird, auf das erstellte Projekt aus und löscht das während des Build-Prozesses generierte None. Das Löschen schlägt jedoch fehl und verursacht einen Fehler, wodurch das Erstellen des ersten Projekts fehlschlägt. Diese Methode wird für mehrere Projekte nicht empfohlen. Wenn in Jenkins nur eine einzige Aufgabe ausgeführt wird, gibt es kein Problem.

3. Geplante Aufgabenbereinigung

Ich bevorzuge diese Methode. Erstellen Sie eine neue geplante Jenkins-Aufgabe. Ich habe sie beispielsweise so eingestellt, dass der Spiegel um 12 Uhr abends von keinem bereinigt wird. Die Schritte sind wie folgt:

1. Erstellen Sie in Jenkins ein neues Projekt mit einem beliebigen Namen, meines beispielsweise „ClearImage“.

2. Erstellen Sie einen Trigger, wählen Sie „SCM abfragen“ und legen Sie die geplante Zeit fest. Ich habe es beispielsweise so eingestellt, dass am frühen Morgen aufgeräumt wird, aber Sie können auch andere Zeiten festlegen. Spezifische Einstellungsregeln finden Sie unter dem Fragezeichen rechts.

3. Führen Sie das Build-Skript aus. Der Skriptinhalt wurde bereits angegeben. Speichern Sie ihn einfach.

Führen Sie den sofortigen Build manuell aus, um zu überprüfen, ob er wirksam ist:

Sehen Sie sich die Konsolenausgabe an:

Ausgabe abgeschlossen: Build hat funktioniert.


Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So verwenden Sie Jenkins zum Konfigurieren des automatisierten Git+Maven-Builds
  • Implementierung der Ein-Klick-Bereitstellung von Asp.net Core Jenkins Docker
  • So erstellen Sie eine kontinuierliche Integrationsumgebung mit Jenkins+Maven+Git auf CentOS7
  • Hinweise zur Installation und Konfiguration von Jenkins
  • Detaillierte Erläuterung der Anwendungsbereitstellungspraxis für Docker + Jenkins + Gitlab + Django
  • Einführung in Jenkins und wie man Jenkins mit Docker bereitstellt
  • Detaillierte Erklärung zur Verwendung von Log Parse in Jenkins
  • Docker-Container verwendet Jenkins zum Bereitstellen von Webprojekten (Zusammenfassung)
  • Detaillierte Erklärung zum automatischen Bereitstellen von Springboot-Anwendungen in Jenkins
  • Anweisungen zum Bereitstellen von Projekten auf Remotecomputern mithilfe des Publish Over SSH-Plugins in Jenkins

<<:  So ändern Sie das MySQL-Passwort auf dem XAMPP-Server (mit Bildern)

>>:  Implementierung eines einfachen Karussells auf Basis von JavaScript

Artikel empfehlen

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.24

MySQL ist das beliebteste relationale Datenbankma...

V-Bind in Vue verstehen

Inhaltsverzeichnis 1. Analyse des wichtigsten Que...

Eine eingehende Analyse von MySQL erläutert die Verwendung und die Ergebnisse

Vorwort Bei unserer täglichen Arbeit führen wir m...

Detaillierte Erklärung der in Node.js integrierten Module

Inhaltsverzeichnis Überblick 1. Pfadmodul 2. Bis ...

Entwickeln Sie Beispielcode für einen Taschenrechner mit nativem JavaScript

Die Hauptfunktion eines Rechners besteht darin, n...

Detaillierte Erklärung des SELINUX-Arbeitsprinzips

1. Einleitung Der Hauptvorteil, den SELinux für L...

So installieren Sie MySQL unter Linux (Yum und Quellcode-Kompilierung)

Es gibt zwei Möglichkeiten, MySQL unter Linux zu ...

Lösung für das Problem, dass der Z-Index in CSS3 nicht wirksam wird

Ich habe vor kurzem eine Kombination aus CSS3 und...

CSS löst das Fehlausrichtungsproblem von Inline-Blöcken

Schluss mit Unsinn, Postleitzahl HTML-Teil <di...