1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker】DockerFileをAmazonLinux2からAmazonLinux2023に更新したら、コンテナ内から出力されるログが文字化けしたため、原因追求と対策を行った

Last updated at Posted at 2025-04-24

はじめに

現場にて、運用上バッチをデプロイする時に使われていたDockerFile(が記入されている.sh)がありました。
そのDockerFileを更新する際、なかなか解消できない問題が発生したため、知識共有として記事に残そうと思います。

背景

2025年でAmazonLinux2(以下AL2)がサポート終了するため、DockerFileもAmazonLinux2023(以下AL2023)に変更する対応を行った。

変更したらどうなったか?

デプロイしたバッチからはログを出力していたが、AL2の時は正常だったログが、AL2023に更新すると文字化けが発生していた。

どんな処理だったか?

旧処理(一部省略).sh
cat << _EOF ${_DIR_}/DockerFile
- FROM amazonlinux:2
+ FROM amazonlinux:latest
ADD ${NAME}.tar.gz /opt/
ENV_NAME=en_US.UTF-8
WORKDIR /opt/${NAME}
RUN yum install -y java-11-amazon-corretto
_EOF

amazonlinux:latestと記入すれば最新のDockerイメージを取得するようになります。
記載時点ではAL2023が最新です。

原因は?

AL2とAL2023のデフォルトでインストールされているパッケージに差があった。

どんな差があったか?

・AL2ではglibc-langpack-enがデフォルトでインストールされているため、en_US.UTF-8に対応していた。
・AL2023はglibc-langpack-enがデフォルトでインストールされていないため、en_US.UTF-8に対応していなかった。

Q:glibc-langpack-enとは?
A:Linux環境で英語を使えるようにするためのロケールパッケージです。

どう対応したか?

  1. ロケール設定の追加を行った
  2. ロケールパッケージ(glibc-langpack-en)のインストールを行った

上記2点を対応したことにより、無事文字化けが解消された。

新処理(一部省略).sh
cat << _EOF ${_DIR_}/DockerFile
FROM amazonlinux:latest
ADD ${NAME}.tar.gz /opt/
ENV_NAME=en_US.UTF-8
+ ENV_LANGUAGE=en.US:en
+ ENV_LC_ALL=en.US.UTF-8
WORKDIR /opt/${NAME}
RUN yum install -y java-11-amazon-corretto ¥
+ && yum install -y glibc-langpack-en
_EOF

Q:ロケール設定とは?
A:システムのデフォルト言語や文字コード、タイムゾーンなどを管理する、言うなればシステムの地域設定のことを示しています。

終わりに

まさかインストールパッケージがALバージョンで異なるとは思いませんでした。
EC2上でロケール関連の設定、パッケージインストールはとりあえず実施しておくというケースは多いかと思います。
ただDockerFile側は盲点でした。
この記事が誰かの役に立てば幸いです!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?