docker centos7イメージを使用してspringbootプロジェクトをデプロイしたところ、ログファイルに文字化けした文字が見つかりました。この問題は主に、鏡の中の中国語のサポートの欠如によって引き起こされます。以下は具体的な解決策です。
コンテナ名またはIDに従ってコンテナを入力します。
docker exec -it container_name /bin/bash
ロケールを実行して、現在の環境で使用されている言語を確認します。
[ root@f6179ac439f2 /]# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
locale -aを実行して、現在のシステムでサポートされている言語パックを表示します。
[ root@f6179ac439f2 /]# locale -a
C
POSIX
en_US.utf8
中国のzh_CN.utf8はデフォルトでサポートされていないことがわかります。次に、対応する言語パックのインストールを開始します。
言語パックのインストール(centos 7用):
yum install kde-l10n-Chinese -y
gitbcパッケージを更新します(パッケージの機能の一部がミラーキャストされないようにするため)。
yum reinstall glibc-common -y
システム言語パックを設定します。
localedef -c -f UTF-8-i zh_CN zh_CN.utf8
/ etc / profileファイルに追加:
export LC_ALL=zh_CN.UTF-8
再コンパイル:
source /etc/profile
/etc/locale.confを設定し、以下を追加します。
LANG="zh_CN.UTF-8"
次に、ミラーを再起動すると、文字化けの問題が解決されます。ロケールが再度実行されても、表示されるコードはPOSIXのままですが、ログの文字化けの問題は発生しなくなりました。
上記の方法は、ドッカーイメージとコンテナーが既に存在する状況を解決するためのものです。イメージの作成中にこの問題を解決する場合は、Dockerfileに次の構成を追加できます。
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8-i zh_CN zh_CN.utf8
RUN export LANG=zh_CN.UTF-8
RUN echo "export LANG=zh_CN.UTF-8">>/etc/locale.conf
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
Recommended Posts