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 installierenInstallieren Sie Docker https://www.runoob.com/docker/docker-tutorial.html 2. Installieren Sie das Jenkisn-Image1. 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 JenkinsGeben 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 KnotenLassen 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 installierenLassen 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 BildernBleiben Sie dran für weitere Updates ... 5. Konfigurieren Sie die Jenkins-UmgebungDies 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:
|
<<: CSS Zurück zum Anfang Codebeispiel
>>: 10 hervorragende Web-UI-Bibliotheken/Frameworks
Vorwort Das langsame Abfrageprotokoll ist eine se...
Dieser Artikel stellt hauptsächlich die Wirkung d...
1. Übersicht Beim täglichen Betrieb und bei der W...
Das Projekt interagiert mit dem Server, greift üb...
In einer Front-End-Technologiegruppe sagte ein Gr...
Vorne geschrieben In der Vergangenheit und in akt...
Als ich mir in letzter Zeit einige CSS3-Animation...
Zusammenfassung HTML: Element plus V-Umhang CSS: ...
Vorwort: Ich habe oft von Datenbankparadigmen geh...
1. Wenn der Benutzer über die Berechtigung zum Er...
Heute habe ich mir einige Dinge im Zusammenhang m...
Schauen wir uns zunächst ohne Umschweife die Rend...
Umweltanforderungen: IP Hostname 192.168.1.1 Knot...
Ich glaube, dass jeder manchmal Daten kopieren un...
Vorwort Meine Anforderungen sind Syntaxhervorhebu...