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が数十億のトラフィックをサポートする方法

目次1 マスター・スレーブの読み取り・書き込み分離1.1 コア2 マスタースレーブレプリケーション2...

Kafka と Nginx の統合例

背景nginx-kafka-module は、Kafka を nginx に統合して、Web プロジ...

Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

画像をプルする docker プル mysql完成した画像を見る Docker イメージイメージを介...

メタタグにおける http-equiv 属性の使用の概要

metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うかもし...

MySQL 8.0 の新機能の落とし穴と解決策についての簡単な説明 (要約)

1. ユーザーを作成して承認するMySQL 8.0 では、ユーザーの作成と認証が以前とは異なります...

Vue で Graphql インターフェースを実装する例

注意:この記事は現在取り組んでいる nestjs+graphql+serverless 合宿における...

JS における ES6 継承と ES5 継承の違い

目次継承ES5 プロトタイプ継承ES6 クラス継承両者の違いES5プロトタイプ継承の内部実装ES6 ...

nginx + php の「入力ファイルが指定されていません」の解決策

本日、ローカル開発環境で突然「入力ファイルが指定されていません」というエラーが発生してしまいました。...

Tomcat コアコンポーネントとアプリケーションアーキテクチャの詳細な説明

目次Web コンテナとは何ですか? HTTP の性質HTTP リクエスト応答の例クッキーとセッション...

画像にマウスを置いたときにズームイン/ズームアウトするには JS を使用します

マウスが画像上にあるときにズームインおよびズームアウトするには、JS を使用します。具体的なコードは...

Docker Compose ワンクリック ELK デプロイ方式の実装

インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しか...

Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに...

Docker インストール rocketMQ チュートリアル (最も詳細)

RocketMQ は、Alibaba が設計した分散型のキューベースのメッセージング ミドルウェア...