経緯
今まで使っていた CodeBuild の AmazonLinux2 ベースイメージ aws/codebuild/amazonlinux2-x86_64-standard:3.0
が、いつのまにか廃止になっていました。
そこで、思い切って AmazonLinux2023 ベースの aws/codebuild/amazonlinux2-x86_64-standard:5.0
へ更新したところ、日本語ファイル名を扱うタイミングで文字化けしてビルドが通らなくなってしまったので、その対応記録です。
対応方法
公式ドキュメントのトラブルシューティングを見ると、そのまんまの内容があります。
pre_build
フェーズでロケールを設定するだけらしい。
buildspec.yml
pre_build:
commands:
- export LC_ALL="en_US.utf8"
・・・が、そもそもこんなロケールは最初からインストールされていないので、エラーになります。
/codebuild/output/tmp/script.sh: line 4: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8): No such file or directory
AmazonLinux2023 は Fedora ベースらしいので、Fedora のロケール設定方法を探して pre_build
フェーズに設定したところ、解決しました。
buildspec.yml
pre_build:
commands:
- dnf -y install glibc-langpack-ja
- export LANG=ja_JP.utf8 LC_ALL=ja_JP.utf8 LANGUAGE=ja_JP:ja