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

Detaillierte Erklärung des Hintergrund-Positionsprozentsatzprinzips

Als ich heute jemandem beim Anpassen des Codes ha...

Detaillierte Erklärung der Mixin-Verwendung in Vue

Inhaltsverzeichnis Vorwort 1. Was sind Mixins? 2....

Detaillierte Erläuterung gängiger Vorgänge für Docker-Images und -Container

Bildbeschleuniger Manchmal ist es schwierig, Bild...

Lösung für das Problem des MySQL-Datenverzögerungssprungs

Heute haben wir ein weiteres typisches Problem im...

Detaillierte Erklärung der NodeJS-Modularität

Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...

js zur Realisierung eines Web-Musikplayers

Dieser Artikel enthält einfachen HTML- und Musikp...

Erstellen Sie mit PS in zwei Minuten eine Homepage für eine XHTML+CSS-Website

Es gibt zu viele Artikel über Webstandards zur We...

Erklärung des HTML-Codes der Webseite: geordnete Liste und ungeordnete Liste

In diesem Abschnitt lernen wir Listenelemente in ...

So richten Sie einen FTP-Server in CentOS7 ein

FTP wird hauptsächlich für die Dateiübertragung v...

Implementierungscodebeispiel für die lokale Verzeichniszuordnung von Nginx

Manchmal müssen Sie auf einige statische Ressourc...