Beim Einrichten von Jenkins in einer Docker-Umgebung werden im Konsolenprotokoll beim Erstellen von Aufgaben verstümmelte chinesische Zeichen angezeigt

Beim Einrichten von Jenkins in einer Docker-Umgebung werden im Konsolenprotokoll beim Erstellen von Aufgaben verstümmelte chinesische Zeichen angezeigt

1. Problembeschreibung:

In der Linux-Umgebung des Centos-Betriebssystems wurde nach dem Herunterladen des Jenkins-Images über Docker ein Container erstellt, auf die Jenkins-Adresse wurde über die IP+Port des Servers zugegriffen und die entsprechende Konfiguration durchgeführt. Anschließend wurde ein Task-Job erstellt, um das automatisierte Java+Selenium-Testskript zu erstellen und auszuführen. Der aktuelle Build ist erfolgreich. Der einzige Nachteil ist, dass das gedruckte Protokoll verstümmelt erscheint, wie unten gezeigt:

(Hinweis: Die Ausführungsmaschine ist Jenkins selbst, dieselbe Maschine)

Bildbeschreibung

2. Fehlerbehebung bei Jenkins-Einstellungen

Jenkins Systemeinstellungen zeigen den Sprachteil in den globalen Eigenschaften an

Bildbeschreibung

2. Detaillierte Jenkins-Informationen (fügen Sie nach der Jenkins-Adresse des Browsers /systemInfo hinzu)

BildbeschreibungBildbeschreibung

3. Code-Log-Kodierungsmethode

1. Überprüfen Sie, ob das gedruckte Protokoll utf-8 ist. Es wird bestätigt, dass es

Bildbeschreibung

4. Informationen zur Linux-Serversprache

1. Überprüfen Sie die Host-Sprachkonfiguration und geben Sie den Befehl ein: locale -a

Bildbeschreibung

2. /.vimrc anzeigen

Ich habe mich nicht getraut, es hier zu ändern, da es den Umfang nicht beeinträchtigen würde. Ich habe gerade den Artikel auf CSDN gefunden.

Bildbeschreibung

Dies ist nicht ganz klar, die im Internet gegebene Antwort lautet:

https://blog.csdn.net/u010189459/article/details/38338735

Die allgemeine Bedeutung besteht darin, dass in vimrc die Kodierung diese Elemente gleichzeitig festlegen kann:

setze Kodierung=utf-8 setze Langmenu=zh_CN.UTF-8 Sprachnachricht zh_CN.UTF-8

5. Abschließende Untersuchung

Nachdem nun die Jenkins-Systemeinstellungen und die Hostsprache überprüft wurden, beginnen wir mit der Überprüfung des Containers

1. Geben Sie den Jenkins-Container ein

docker exec -it Container-ID /bin/bash

Sprache anzeigen

Bildbeschreibung hier einfügen

Geben Sie dann

export LC_ALL="C.UTF-8"

Schreiben Sie am Ende von /etc/bash.bashrc, dann source /etc/bash.bashrc und stellen Sie fest, dass kein vim vorhanden ist. Vergessen Sie es also.

lc_all weist tatsächlich allen oben genannten Variablen Werte zu, und der Effekt ist der gleiche, aber ein Versuch kann nicht schaden. Im Allgemeinen gibt es so etwas nicht. Docker selbst verfügt über ein vollständiges Betriebssystem und hat nichts mit dem Hostcomputer zu tun.

2. Rufen Sie den Chrome-Browser-Container auf

set LC_ALL="C.UTF-8"

Bildbeschreibung hier einfügen

3. Ändern Sie dann die globalen Eigenschaften der Jenkins-Systemeinstellungen und ändern Sie das vorherige LANG = zh_CN .UTF-8 in LANG = C.UTF-8. Der Grund ist: Derzeit wird der Servermarkt im Wesentlichen von Centos und Debian besetzt. Centos basiert auf Redhat, Debian ist selbst bezogen, Centos ist von Redhat abgeleitet, verschiedene Patches und Dienste sind vollständiger, Centos wird auch als Server verwendet. Wenn ich mich nicht irre, verwendet der Hostcomputer, auf dem sich Jenkins befindet, das Debian-System anstelle von Centos, da das Gebietsschema in Debian zh_CN.UTF-8 unterstützt und Centos C.UTF-8 unterstützt

Bildbeschreibung hier einfügen

Starten Sie abschließend den Jenkins-Dienst neu (fügen Sie nach der Jenkins-Adresse /restart hinzu), starten Sie dann die Aufgabe und zeigen Sie das Protokoll der Jenkins-Konsole an!

Bildbeschreibung hier einfügen

Nachtrag: Möglicherweise muss die Sprache im Container festgelegt werden. Dies hängt möglicherweise mit der Jenkins-Systemeinstellung der globalen Eigenschaftssprache LANG = C.UTF-8 zusammen.

Zusammenfassen

Das oben genannte Problem betrifft das vom Editor eingeführte Problem, dass beim Erstellen von Jenkins-Aufgaben in der Docker-Umgebung verstümmelte chinesische Schriftzeichen im Konsolenprotokoll erscheinen. Ich hoffe, es wird allen helfen!

Das könnte Sie auch interessieren:
  • Docker erstellt Jenkins und automatisiert die Schritte zum Verpacken und Bereitstellen von Projekten
  • Verwenden der Docker+Jenkins+Python3-Umgebung zum Erstellen eines äußerst detaillierten Tutorials
  • 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
  • Implementierung des Jenkins-Automatisierungstools mithilfe von Docker

<<:  Beispiel zum Überprüfen der Kapazität einer MySQL-Datenbanktabelle

>>:  JavaScript implementiert die Verarbeitung großer Datei-Uploads

Artikel empfehlen

Spielen Sie mit der Connect-Funktion mit Timeout in Linux

Im vorherigen Artikel haben wir mit Timeouts unte...

JavaScript zum Erzielen eines einfachen Drag-Effekts

In diesem Artikel wird der spezifische JavaScript...

Aufbauprinzip des Nexus-Privatservers und Tutorial-Analyse

eins. Warum einen privaten Nexus-Server erstellen...

MySQLs Methode zum Umgang mit doppelten Daten (Verhindern und Löschen)

Einige MySQL-Tabellen können doppelte Datensätze ...

Detaillierte Schritte zum Erstellen einer React-Anwendung mit einer Rails-API

Inhaltsverzeichnis Backend: Rails API-Teil Front-...

Tudou.com Frontend-Übersicht

1. Arbeitsteilung und Prozess <br />Bei Tud...

JavaScript zur Implementierung der Funktion zum Ändern des Avatars

In diesem Artikel wird der spezifische JavaScript...

Installieren Sie mehrere PHP-Versionen für Nginx unter Linux

Wenn wir die LNPM-Serverumgebung installieren und...

So schreiben Sie Objekte und Parameter, um Flash in Firefox abzuspielen

Code kopieren Der Code lautet wie folgt: <Obje...

jQuery realisiert dynamische Partikeleffekte

In diesem Artikel wird der spezifische Code von j...

JavaScript zum Erzielen eines Texterweiterungs- und -reduzierungseffekts

Die Implementierung des Erweiterns und Reduzieren...

Vollständiges Beispiel der Kapselung der globalen Toast-Komponente durch Vue

Inhaltsverzeichnis Vorwort 1. Mit vue-cli 1. Defi...

vue + springboot realisiert den Login-Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Co...