Verwenden der Docker+Jenkins+Python3-Umgebung zum Erstellen eines äußerst detaillierten Tutorials

Verwenden der Docker+Jenkins+Python3-Umgebung zum Erstellen eines äußerst detaillierten Tutorials

Vorwort:

Nachdem die Automatisierung geschrieben wurde, muss sie jeden Tag auf dem Server ausgeführt werden. Ich bin auf ein solches Problem gestoßen. Der Jenkins-Container wurde in Docker installiert, und dann wurde der Code aus Git gezogen und festgestellt, dass sich der Code im Verzeichnis des Jenkins-Containers befand. Beim Ausführen wurde angezeigt, dass die Python-Umgebung und die Bibliotheken von Drittanbietern nicht installiert waren.

Es gibt drei Lösungen:

Die erste Methode: Mounten Sie beim Starten des Jenkins-Containers das Containerverzeichnis zur Ausführung im Hostverzeichnis (diese Methode kann nicht implementiert werden).

Die zweite Methode: Erstellen Sie einen lokalen Knoten auf Jenkins, ziehen Sie den Code dorthin und führen Sie das lokale Projekt aus (die Verwendung auf dem lokalen Computer ist bequemer, die Einschränkungen sind jedoch relativ gering).

Die dritte Methode: Verpacken Sie das Jenkins-Image neu, installieren Sie die Python3-Umgebung im Jenkins-Image und führen Sie das Projekt im Container aus (die Schritte sind umständlich, werden aber in Zukunft dauerhaft verwendet).

Die erste und zweite Methode erfordern, dass Docker- und Jenkins-Images auf dem Server installiert sind.

1. Docker installieren

Installieren Sie Docker https://www.runoob.com/docker/docker-tutorial.html

2. Installieren Sie das Jenkisn-Image

1. Suchen Sie das Bild auf Docker Docker Search Jenkins
  
2. Laden Sie das benötigte Image herunter: docker pull jenkinsci/blueocean
  
3. Überprüfen Sie, ob die Docker-Images erfolgreich heruntergeladen wurden
  
4. Starten Sie das heruntergeladene Image docker run -d -p 10240:8080 -p 10241:50000 -v /jenkins_autotest/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --name jenkint_test jenkinsci/blueocean
 
#Beschreibung: docker run -d: Container im Hintergrund ausführen -p: Portzuordnung des Containers angeben -p 10240:8080 bedeutet, den Port 8080 des Containers dem Port 10240 des Hosts zuzuordnen. Um mehrere Ports zuzuordnen, verwenden Sie -p 8082:8080 -p 8083:8081
   -v: Hostverzeichnis und Verzeichnis im Docker-Container mounten /Users/songpeilun/jenkins_home absolutes lokales Hostverzeichnis; /var/jenkins_home Containerverzeichnis (Containerverzeichnis lokal mounten)
   -v:/etc/localtime:/etc/localtime Lokale Zeit und Containerzeit synchronisieren -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai Containerzeit auf Shanghai-Zeit einstellen (sonst unterscheiden sich Containerzeit und lokale Zeit um 8 Stunden)
   --name jenkint_test Setzt den Namen des Containers auf jenkinsci/blueocean. Wählen Sie den Image-Namen aus, um den Container zu starten (das neueste wird zum Standard-Image hinzugefügt. Wenn Sie das von Ihnen erstellte Image abrufen, fügen Sie Ihre eigene Versionsnummer hinzu: jenkinsci/blueocean: Versionsnummer-TAG).

   ⚠️ Achten Sie beim Einbinden eines lokalen Verzeichnisses im Containerverzeichnis darauf, dem lokalen Ordner Berechtigungen zu erteilen: chmod 777 jenkins_home

Geben Sie Docker-Images ein, um zu überprüfen, ob das Jenkins-Image erfolgreich installiert wurde

Docker-Bilder 

Überprüfen Sie, ob der Container ausgeführt wird

Docker PS

Es ist ersichtlich, dass im Docker bereits ein laufender Container Jenkins vorhanden ist

Dies bedeutet, dass Jenkins installiert wurde und Sie Jenkins jetzt starten können.

3. Starten Sie Jenkins

Geben Sie die Server-IP + Portnummer im Browser ein http://47.99.98.250:10240/ Wenn Sie nicht darauf zugreifen können, schalten Sie bitte die System-Firewall aus

Es gibt zwei Möglichkeiten, das Passwort anzuzeigen. Die erste besteht darin, es im Container des Servers anzuzeigen, und die zweite darin, es im zugeordneten lokalen Verzeichnis anzuzeigen (vorausgesetzt, Sie haben das lokale Verzeichnis zugeordnet).

Okay, Jenkins wurde hier installiert.

Zeigen Sie das Kennwort im Container an: cat /var/jenkins_home/secrets/initialAdminPassword
Lokales Verzeichnis zuordnen: cat /Users/songpeilun/jenkins_home/secrets/initialAdminPassword
#/Users/songpeilun/jenkins_home Adresse des lokalen Mapping-Verzeichnisses

3. Methode 2: Erstellen Sie einen neuen lokalen Knoten

Lassen Sie uns über die spezifische Logik der Methode 2 sprechen. Sie erstellt hauptsächlich einen neuen lokalen Knoten von Jenkins und verwendet den neuen Knoten, um den Code auf Git auf den lokalen (Host-)Knoten zu ziehen, um den Code auszuführen.

Diese Methode eignet sich hauptsächlich für eine lokale Umgebung, in der bereits eine Python3-Umgebung vorhanden ist. Sie können die Automatisierung direkt ausführen und mithilfe der lokalen kontinuierlichen Integration tägliche Automatisierungsberichte erstellen (Nachteile: Da der lokale Knoten die Adresse des Hostcomputers als IP verwendet, müssen Sie den Computer und die Jenkins-Adresse jedes Mal öffnen und das externe Netzwerk kann nicht darauf zugreifen. Die Einschränkung ist gering).

Schritt 1: Installieren Sie das SSH-Agent-Plugin in Jenkins

Installieren Sie die SSH-Agent-Plugin-Systemeinstellungen - Plugin-Verwaltung - Optionale Plugins und geben Sie die SSH-Agent-Suche ein

Schritt 2: Neue Knoten hinzufügen

Systemeinstellungen – Knotenverwaltung – Neuer Knoten (Knotennamen dürfen nicht wiederholt werden)

veranschaulichen:

Knotenname: Verwenden Sie englische Zeichen anstelle von chinesischen Zeichen (beim Auswählen eines Knotens während der Projekterstellung wird eine Warnung angezeigt!)

Knotenbeschreibung: optional

Anzahl der Executoren: Die Anzahl der gleichzeitig laufenden Knoten

Remote-Arbeitsverzeichnis: Das lokale Arbeitsverzeichnis (/Users/songpeilun/jenkins) erfordert einen Benutzer mit Root-Rechten, der über volle Berechtigungen für diese Datei verfügt.

Schlagwörter: optional

Verwendung: Verwenden Sie diesen Knoten, wann immer möglich

Startmethode: Agenten über SSH starten

Host: Die Netzwerk-IP-Adresse dieses Computers (Netzwerk-Netzwerkeinstellungen-IP)

Anmeldeinformationen: Wählen Sie das lokale Konto und das Passwort aus, die hinzugefügt wurden

Host Key Verification Strategy: Nicht verifizierende Verifizierungsstrategie

Verfügbarkeit: Versuchen Sie, den Agenten online zu halten

Knoteneigenschaften --git: Git-Installationspfad

Starten Sie dann den Knoten. Der erfolgreiche Start wird angezeigt. Überprüfen Sie dann, ob sich im lokalen Hostverzeichnisordner eine Knotendatei befindet.

3. Methode 3: Python 3-Umgebung im Container installieren

Lassen Sie uns über die spezifische Logik von Methode 3 sprechen. Sie führt hauptsächlich den Code im Container aus. Git zieht den Code standardmäßig ohne Zuordnung in den Container und führt den Code direkt im Container aus (Vorteile: belegt nicht die Ressourcengröße des Servers und kann jederzeit gestartet werden; erfordert keine lokalen Startdienste und kann die Serveradresse direkt verwenden. Nachteile: Die Installation ist etwas mühsam 😈)

Schritt 1: Sie müssen den Jenkins-Container betreten  

docker exec -itu Root-Container-ID /bin/sh

Es gibt zwei Möglichkeiten, Python3 zu installieren

1. Weget-Installation (nicht empfohlen, im Grunde dasselbe wie die aktuelle Installationsmethode, Sie müssen zuerst einige abhängige Pakete installieren, z. B. gcc usw.)

2.apk add-Installation (diese Version ist alpin: apk add, die schnell installiert werden kann)

Achten Sie abschließend auf das Problem mit der Systemversion:

Wenn es CentOS ist, ist es Yum; wenn es Ubuntu ist, ist es Apt-get; wenn es Alpine ist, ist es APK

Schritt 2: Installieren Sie Python3 mit APK

cd /etc/apk/
echo "https://mirrors.ustc.edu.cn/alpine/v3.6/main/" > Repositorien
echo "https://mirrors.ustc.edu.cn/alpine/v3.6/community/" >> Repositorien

Aktualisieren Sie die APK-Quelle, damit der Download schneller ist

APK-Aktualisierung

Schritt 3: Verwenden Sie apk add, um die Python3-Umgebung zu installieren

apk python3 hinzufügen

Schritt 4: pip3 aktualisieren

pip3 installieren --upgrade pip

Überprüfen Sie die Python-Umgebung python -V
Pip3 -V

Nachdem die obige Installation erfolgreich war, können Sie das Plug-In der Drittanbieterbibliothek installieren und sind damit zur Hälfte erledigt.

Installieren Sie das Plugin entsprechend den Anforderungen Ihres Projekts. Hier ist mein Projekt als Beispiel.

Schritt 5: Installieren Sie Python-Bibliotheken von Drittanbietern

Erstellen Sie zuerst die Datei requirements.txt

pip freeze > Anforderungen.txt

pip install -r Anforderungen.txt

Verwenden Sie dann vi requirements.txt, um die Datei zum Bearbeiten zu öffnen

base64-test0926==1.0.0
        PyMySQL==1.0.2
        pytest==6.2.3
        python-jenkins==1.7.0
        PyYAML==5.4.1
        redis==3.5.3
        Anfragen==2.25.1
        SQLAlchemy==1.4.10
        urllib3==1.26.4
        Rad == 0,36,2
        allure-pytest==2.8.40
        allure-python-commons==2.8.40

Die letzten beiden erfordern eine Allure-Berichtskonfiguration vor der Installation, andernfalls wird ein Fehler gemeldet.

⚠️ Wenn die Installation fehlschlägt, machen Sie sich keine Sorgen und finden Sie langsam den Grund heraus. Ich habe lange nach dem Grund gesucht, nachdem zuvor ein Fehler aufgetreten war. Es lag am fehlenden Greenlet-Plugin (ich werde Ihnen später eine Methode nennen).

Wenn keine Probleme auftreten, war die Installation erfolgreich. Sie können Ihren eigenen Code zum Testen in den Container kopieren. Wenn kein Problem vorliegt, können Sie das Image verpacken

Lokale Dateien in das Containerverzeichnis xx kopieren

Docker cp /Users/songpeilun/python_data/allure-2.13.0.zip jenkint_test:/xx-Verzeichnis

Ich verwende hier den Allure-Bericht, also muss ich ihn installieren

Schritt 6: Installieren Sie den Allure-Bericht

Allure ist ein dekomprimiertes Paket. Hier ist eines für Sie. Kopieren Sie es nach dem Herunterladen in den Container und dekomprimieren Sie es.

Link: https://pan.baidu.com/s/1JbBXOfA0j6saZh7H8RMipw Passwort: qfnv

#Entpacken Sie die Datei im Container unzip allure-2.13.0.zip

#Umgebungsvariablen konfigurieren vi /etc/profile
Fügen Sie nach PATH hinzu: $PATH:/allure-2.13.0/bin (der vollständige Pfad von Allure)
source /etc/profile Speichern und übernehmen

Schritt 7: Verifizieren Sie die Anziehungskraft

allure --version

4. Verpacken/Hochladen von Bildern

Bleiben Sie dran für weitere Updates ...

5. Konfigurieren Sie die Jenkins-Umgebung

Dies ist das Ende dieses Artikels über das superdetaillierte Tutorial zum Erstellen einer Umgebung mit Docker+Jenkins+Python3. Weitere relevante Inhalte zur Docker+Jenkins+Python3-Umgebung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker erstellt Jenkins und automatisiert die Schritte zum Verpacken und Bereitstellen von Projekten
  • Docker+Gitlab+Jenkins erstellt automatisierte Bereitstellung von Grund auf
  • Docker erstellt eine Jenkins+Maven-Plattform zum Erstellen und Bereitstellen von Code
  • Beispiel für den Aufbau eines Jenkins-Dienstes mit Docker
  • Beim Einrichten von Jenkins in einer Docker-Umgebung werden im Konsolenprotokoll beim Erstellen von Aufgaben verstümmelte chinesische Zeichen angezeigt
  • Implementierung des Jenkins-Automatisierungstools mithilfe von Docker

<<:  CSS Zurück zum Anfang Codebeispiel

>>:  10 hervorragende Web-UI-Bibliotheken/Frameworks

Artikel empfehlen

Beispiel zum Aktivieren langsamer Abfragen in MySQL

Vorwort Das langsame Abfrageprotokoll ist eine se...

Lösung für das Problem mit verstümmeltem MySQL-Code unter Linux

Das Projekt interagiert mit dem Server, greift üb...

Bestimmen Sie die Richtung der Mauseingabe basierend auf CSS

In einer Front-End-Technologiegruppe sagte ein Gr...

Diagramm des Installations- und Verwendungstutorials für MySQL 8.0.17

Vorne geschrieben In der Vergangenheit und in akt...

CSS3-Animation – Erläuterung der Funktion „Steps“

Als ich mir in letzter Zeit einige CSS3-Animation...

So verhindern Sie das Flashen von Vue in kleinen Projekten

Zusammenfassung HTML: Element plus V-Umhang CSS: ...

Detaillierte Erklärung des MySQL-Datenbankparadigmas

Vorwort: Ich habe oft von Datenbankparadigmen geh...

Einige Hinweise zu MySQL-Routineberechtigungen

1. Wenn der Benutzer über die Berechtigung zum Er...

Hinweise zum MySQL-Datenbank-Sicherungsprozess

Heute habe ich mir einige Dinge im Zusammenhang m...

Beispielcode zur Implementierung eines 3D-Bucheffekts mit CSS

Schauen wir uns zunächst ohne Umschweife die Rend...

So stellen Sie die LNMP-Architektur im Docker bereit

Umweltanforderungen: IP Hostname 192.168.1.1 Knot...

Detaillierte Erklärung zur Verwendung der Linux-Umleitung

Ich glaube, dass jeder manchmal Daten kopieren un...

So verwenden Sie den JS-Code-Compiler Monaco

Vorwort Meine Anforderungen sind Syntaxhervorhebu...