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 トランザクション同時実行問題の解決

開発中にこのような問題に遭遇しましたビデオ視聴記録が 100 に更新されると、視聴されたことを意味し...

MySQL UPDATE ステートメントの非標準実装コード

今日は、MySQL データベースと SQL 標準 (および他のデータベース) の UPDATE ステ...

nginx httpモジュールのデータ保存構造の概要

このセクションから、http モジュールの実装原理について説明します。http モジュールで非常に重...

CSS3アニメーションを使用した簡単な指クリックアニメーションの実装例

この記事では主に、CSS3 アニメーションで簡単な指クリックアニメーションを実装する例を紹介し、皆さ...

MySQL データベース テーブルのパーティション分割に関する考慮事項 [推奨]

テーブル パーティショニングは、データベース パーティショニングとは異なります。では、テーブル パー...

JavaScript マクロタスクとマイクロタスク

マクロタスクとマイクロタスクJavaScript はシングルスレッド言語です (マルチスレッドの場合...

C# は MySQL コマンドラインのバックアップとリカバリを実装します

MySQL データベースをバックアップするためのツールは多数あります。過去 2 日間で、C# を使用...

HTML_PowerNode 入門 Java アカデミー

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...

SQL実行ステップの詳細な分析

SQL実行ステップの詳細な分析まず、ステートメントが実行される順序を見てみましょう。 (8)選択する...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

Vite2+Vue3を使用してMarkdownドキュメントをレンダリングする練習

目次カスタム Vite プラグインvite-plugin-markdownの使用Front Matt...

CentOS7にJDK8をrpmモードでインストールする

CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...

Linux で開いているポートへのリモート アクセスを許可する方法

1. ファイアウォール設定ファイルを変更する # vi /etc/sysconfig/iptable...

ドメイン名、ポート、IPに基づいてnginx仮想ホストを構築する

nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...