Hintergrund Die Testumgebung verwendet Jenkins mit integriertem Docker-Plug-In, um einen Ein-Klick-Bereitstellungsdienst für die Testumgebung zu implementieren. Zunächst hat Jenkins das Docker-Build- und Publish-Plug-In installiert, aber beim Ausführen des Jobs sind eine Reihe von Problemen aufgetreten! Frage 1Die Docker-Ausführung meldet einen Fehler. Der Build-Schritt „Docker Build and Publish“ hat den Build als fehlgeschlagen markiert. Es gibt viele Probleme, die zu diesem Satz führen. Genauere Fehlerinformationen: Jenkins-Container unterstützt keine Docker-Operationen? Analyse des Problems: Jenkins wird mithilfe von Docker bereitgestellt, daher gibt es im Jenkins-Container keine Docker-bezogenen Betriebsbefehle, sodass die Ausführung fehlschlägt! Lösung: Sie müssen die Docker-Umgebung des Hosts dem Jenkins-Container zuordnen, bevor Sie die Docker-Befehlszeile verwenden können. docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts Noch einmal ausführen, das Ergebnis ist immer noch falsch, keine Lösung! Fehler 2Es wird angezeigt, dass im Bin-Verzeichnis kein ausführbarer Befehl vorhanden ist. Analyse: Wir wissen, dass wir für jede Umgebung, die wir installieren, die Umgebungsvariable /usr/bin hinzufügen müssen, wenn wir deren Befehlszeile in der Linux-Umgebung ausführen möchten. Lösung: Fahren Sie mit der Zuordnung des ausführbaren Host-Docker-Befehls fort docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(welcher Docker):/usr/bin/docker -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts Tipps: Der Befehl which ähnelt whereis zum Suchen von Befehlen oder Dateien: Ersterer überprüft die Befehle in den Systemumgebungsvariablen (gibt das erste Ergebnis zurück), und letzterer gibt den mit dem Programmnamen verknüpften Pfad zurück (gibt alle übereinstimmenden Ergebnisse zurück). Fehler 3Zugehörige Abhängigkeiten konnten nicht gefunden werden: Fehler beim Laden gemeinsam genutzter Bibliotheken: libltdl.so.7: Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder/libltdl.so.7 Analyse: Da der Container im Jenkins-Container nicht mit dem Host geteilt wird, befindet sich die Bibliothek auf dem Host: cd usr/lib64/ Lösung: Suchen Sie die Abhängigkeitsbibliothek libltdl.so.7 auf dem Host und mounten Sie den Container docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(welcher Docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /var/jenkins_home:/var/jenkins_home -v /var/data/shell:/var/data/shell -u 0 -d jenkins/jenkins:lts Fehler 4keine grundlegenden Authentifizierungsdaten Keine Authentifizierung Analyse der Ursache: Dieses Plug-In verwendet den Docker-Befehl innerhalb des Jenkins-Containers. Beim Erstellen des Images tritt kein Fehler auf. Wenn es in das Image-Repository im Container übertragen werden muss, ist eine Authentifizierung erforderlich. Lösung: Fügen Sie dem Jenkins-Job direkt eine Authentifizierungszeile hinzu: docker login --username=xxxx --password=xxxx nexus.xxxx.com Tipps: Nach der Ausführung des Befehls wird im aktuellen Verzeichnis eine .credentials-Datei generiert, die die Konto- und Kennwortinformationen für die Anmeldung beim Nexus-Image-Repository aufzeichnet Zusammenfassen An diesem Punkt sind die vorherigen Schritte abgeschlossen und Docker-Befehle können innerhalb des Jenkins-Containers verwendet werden. Es ist nicht erforderlich, das Shh-Plugin zu verwenden, um aus dem Container zum Host zu springen und die Befehle für die Build- und Push-Operation auszuführen. Sie müssen nur das Skript ausführen, um den Container zu starten! Bei der Docker-Containerisierung ist alles, was zwischen dem Host und dem Container zugeordnet ist, gleich. Das heißt, unabhängig davon, ob die auf dem Host gemountete Datei im Container geändert wird oder die gemountete Host-Datei im Container geändert wird, werden beide gleichzeitig geändert. Dies ist das Ende dieses Artikels über einige Methoden zur Lösung des Problems des in Jenkins integrierten Docker-Plugins. Weitere relevante Inhalte zum in Jenkins integrierten Docker-Plugin finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Spezifische Verwendung der MySQL-Vorbereitungsvorverarbeitung
Hintergrund Verwenden Sie Idea mit Docker, um den...
Inhaltsverzeichnis Vorwort: Verschlüsselungsalgor...
1. Verwenden Sie das Tag <nobr>, um keinen Z...
Doccer-Einführung: Docker ist eine Container-bezo...
1. Geben Sie die folgende Adresse in den Browser ...
<br />Ich habe festgestellt, dass viele Leut...
Dieser Artikel stellt einige häufig verwendete Fu...
Inhaltsverzeichnis Vorwort Fall: Nachahmung des L...
Bei der Erstellung von Webseiten ist das Anzeigen...
1. Befehlseinführung nl (Anzahl der Zeilen) fügt ...
Drei Tabellen sind miteinander verbunden. Feld a ...
1. Installieren Sie MySQL. Führen Sie den folgend...
Das Raspberry Pi-Modell ist 4b, 1 G RAM. Das Syst...
Dieser Artikel beschreibt einen Digitaluhreffekt,...
Es gibt drei Typen von regulären Matching-Selekto...