Docker環境でJenkinsを設定すると、タスクをビルドするときにコンソールログに文字化けした中国語の文字が表示されます

Docker環境でJenkinsを設定すると、タスクをビルドするときにコンソールログに文字化けした中国語の文字が表示されます

1. 問題の説明:

Linux 環境 Centos オペレーティング システムでは、Docker 経由で Jenkins イメージをダウンロードした後、コンテナーを作成し、サーバー IP + ポート経由で Jenkins アドレスにアクセスし、関連する構成を実行しました。次に、Java + Selenium 自動テスト スクリプトをビルドして実行するタスク ジョブを作成しました。現在のビルドは成功です。唯一の欠点は、印刷されたログが次のように文字化けして表示されることです。

(注: 実行マシンは Jenkins そのもの、同じマシンです)

画像の説明

2. Jenkins設定のトラブルシューティング

Jenkinsのシステム設定では、グローバルプロパティの言語部分を表示します。

画像の説明

2. Jenkinsの詳細情報(ブラウザのJenkinsアドレスの後に/systemInfoを追加)

画像の説明画像の説明

3. コードログのエンコード方法

1. 印刷されたログがutf-8であるかどうかを確認します。

画像の説明

4. Linuxサーバーの言語情報

1. ホスト言語の設定を確認し、コマンドを入力します: locale -a

画像の説明

2. /.vimrc を表示する

範囲に影響がないため、ここではあえて変更しませんでした。CSDN で記事を見つけました。

画像の説明

これはあまり明確ではありませんが、オンラインで与えられた答えは次のとおりです。

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

一般的な意味は、vimrc では、エンコーディングによってこれらの項目を同時に設定できるということです。

エンコードをutf-8に設定 langmenuをzh_CN.UTF-8に設定 言語メッセージ zh_CN.UTF-8

5. 最終調査

Jenkinsのシステム設定とホスト言語の確認が終わったので、コンテナの確認を始めましょう。

1. Jenkinsコンテナに入る

docker exec -it コンテナID /bin/bash

言語を表示

ここに画像の説明を挿入

次に入力してください

export LC_ALL="C.UTF-8"

/etc/bash.bashrc の最後に記述し、 source /etc/bash.bashrcと vim がないので忘れてください。

lc_all は実際には上記のすべての変数に値を割り当てており、効果は同じですが、試してみても害はありません。一般的に言えば、そのようなことはありません。Docker 自体は完全なオペレーティングシステムであり、ホストマシンとは何の関係もありません。

2. Chromeブラウザコンテナに入る

set LC_ALL="C.UTF-8"

ここに画像の説明を挿入

3. 次に、Jenkins システム設定のグローバル プロパティを変更し、以前の LANG = zh_CN .UTF-8 を LANG = C.UTF-8 に変更します。その理由は、現在、サーバー市場は基本的に Centos と Debian によって占められているためです。Centos は Redhat に依存し、Debian は自己ソースであり、Centos は Redhat から派生しており、さまざまなパッチとサービスがより完全であり、Centos はサーバーとしても使用されます。私が間違っていなければ、Jenkins が配置されているホスト マシンは Centos ではなく Debian システムを使用します。これは、Debian のロケールが zh_CN.UTF-8 をサポートし、Centos が C.UTF-8 をサポートしているためです。

ここに画像の説明を挿入

最後に、Jenkins サービスを再起動し (Jenkins アドレスの後に /restart を追加)、タスクを開始して Jenkins コンソールのログを表示します。

ここに画像の説明を挿入

追記:コンテナ内で言語設定が必要なのかもしれません。Jenkinsのシステム設定でグローバルプロパティ言語LANG=C.UTF-8になっていることが関係しているのかもしれません。

要約する

以上が、エディタで紹介したDocker環境でJenkinsタスクをビルドするとコンソールログに中国語文字化けが表示される問題です。皆様のお役に立てれば幸いです!

以下もご興味があるかもしれません:
  • DockerはJenkinsを構築し、プロジェクトのパッケージ化とデプロイの手順を自動化します
  • Docker+jenkins+python3環境を使用して非常に詳細なチュートリアルを構築する
  • Docker+gitlab+jenkins は、ゼロから自動デプロイメントを構築します
  • Dockerはjenkins+mavenコード構築および展開プラットフォームを構築します
  • Docker で Jenkins サービスを構築する例
  • Dockerを使用したJenkins自動化ツールの実装

<<:  MySQLデータベーステーブルの容量を確認する方法の例

>>:  JavaScript は大容量ファイルのアップロード処理を実装します

推薦する

MySQL スケジュールバックアップタスクの簡単な分析

導入実稼働環境では、データの損失を回避するために、通常、データベースは定期的にバックアップされます。...

シンプルなタブバー切り替えケースを実現するJavaScript

この記事では、タブバーの切り替え効果を簡単に実現するためのJavaScriptの具体的なコードを参考...

CSS3を使用してフォントカラーグラデーションを実装する

Animation.css を使うと公式サイトのフォントがだんだんと変わっていくのが分かりました。c...

MySQL データの集約とグループ化

多くの場合、データを実際に取得せずに要約する必要があり、 MySQLこの目的のために特別な関数を提供...

WIN10 システムと Docker 内部コンテナ IP 間の通信方法

1. Windows 版の Docker をインストールしたら、Docker クイックスタート ター...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

Uniappの小規模プログラム開発経験

1. 新しいUIプロジェクトを作成するまず、私たちの UI は ColorUI に基づいています。C...

初心者向けウェブサイト構築チュートリアルの概要

これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...

MySQL でテーブル メタデータ ロックを待機する理由と方法

MySQL が alter table などの DDL 操作を実行すると、テーブル メタデータ ロッ...

Reactイベントメカニズムソースコード分析

目次原理ソースコード分析委任されたイベントバインディングすべてのサポートされているイベントを聴くネイ...

Win2008 サーバー セキュリティ チェック手順ガイド (日常のメンテナンス手順)

ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...

NginxはURLのパスに応じてアップストリームに動的に転送します

Nginx では、URL のパス パラメータに基づいて、到達不可能なアップストリームに動的に転送する...

Kubernetes を使用して Springboot または Nginx をデプロイするための詳細なチュートリアル

1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...

Linux の PHP に XML 拡張機能をインストールする詳細な手順

PHP Linux に XML 拡張機能をインストールする1. PHPインストールソースパッケージを...

Tomcatの起動が遅い問題を素早く解決、超簡単

今日、私はクラスメートが問題を解決するのを手伝いました - Tomcat の起動が非常に遅く、約 5...