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 と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

Mysql 自己結合クエリ例の詳細な説明

この記事では、Mysql の自己結合クエリについて説明します。ご参考までに、詳細は以下の通りです。自...

Tudou.comのホームページのデザイン方法

<br />私は数年間フロントエンドに取り組んできました。フロントエンドについて完全に理...

MyISAMとInnoDBの違いについてお話しましょう

主な違いは次のとおりです。 1. MySQL はデフォルトで MyISAM を使用します。 2. M...

MySQL でストリーミングクエリを使用してデータ OOM を回避する

目次1. はじめに2. JDBCはストリーミングクエリを実装する3. パフォーマンステスト3.1. ...

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

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

mySQLキーワードの実行優先度の説明

以下のように表示されます。表から条件フィールドでグループ化仮想テーブルとフィールドを作成し、フィール...

MySQL Installer Community 5.7.16 インストール詳細チュートリアル

この記事では、MySQL インストールの詳細なチュートリアルを記録し、全員と共有します。 1. バー...

nginx の default_server 定義とマッチングルールの詳細な説明

nginx の default_server ディレクティブは、server_name と一致しない...

WeChatアプレット開発の共通機能と使用方法のまとめ

ここでは、主に小さなプログラムの開発プロセスでよく使われる、非常に実用的な機能ポイントをいくつか整理...

IDEA を使用して Web プロジェクトを作成し、Tomcat に公開する方法

目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...

ReactでCSSをエレガントに書く方法

目次1. インラインスタイル2. インポート方法を使用する3.cssモジュールのエクスポート4. ス...

シンプルなドラッグ効果を実現するjs

この記事では、簡単なドラッグ効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

vue.jsは画像のURLに従って画像をダウンロードします

最近、フロントエンドの vue.js ドッキング機能モジュールに取り組んでいたとき、画像をダウンロー...