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でSQL文がどのように実行されるかの詳細な説明

概要最近MySQL関連の知識を勉強し始めました。学んだ知識ポイントと自分の理解を元に整理して共有しま...

docker nginxコンテナの起動とローカルへのマウントの詳細な説明

まず、nginx コンテナ内の構造:コンテナを入力します: docker exec -it b511...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

HTML 特殊文字変換表

キャラクター小数点文字番号エンティティ名---未使用空間---スペースバー! ! ---感嘆符「 」...

jsを使用してカルーセル効果を実現する

今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...

Vue は左右のスライド効果のサンプルコードを実装します

序文個人の実際の開発で使用した効果問題を、今後の開発やレビューに役立てるためにまとめています。他の人...

MySQL 8.0.24 リリースノートのいくつかの改善点

目次1. 接続管理2. オプティマイザレベルでの改善3. 機能の改善4. パフォーマンススキーマの最...

CSS グリッドレイアウトで列にアイテムを埋め込む方法

n 個のアイテムがあり、これらのアイテムをグリッド レイアウトの列に並べ替える必要があるとします。列...

1 つの記事で MySQL のプリコンパイルを理解する

1. プリコンパイルの利点私たちは皆、プリコンパイル機能を備えた JDBC の PreparedSt...

この記事では、6つの負荷分散技術の実装方法をまとめます(要約)

ロード バランシングは、サーバー クラスタの展開でよく使用されるデバイスです。マシンのパフォーマンス...

Linux 継続的インテグレーションで Maven を自動的にインストールする方法

Mavenパッケージを解凍する tar xf apache-maven-3.5.4-bin.tar....

Linux で Hadoop クラスターをインストールするための詳細な手順

目次1. usrディレクトリにHadoopディレクトリを作成し、インストールパッケージをそのディレク...

LeetCode の SQL 実装 (196. 重複するメールボックスを削除する)

[LeetCode] 196.重複したメールを削除するSQL クエリを記述して、Person とい...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

MySQL sql99構文の内部結合と非等価結合の詳細な説明

#事例: 従業員の給与水準を照会する 選択 給与、等級 から 従業員 参加する ジョブグレード g ...