実行環境
- OS MacOS Ventura13.2
- Docker Desktop
- Docker image ubuntus:latest
実践
コンテナを起動してlocaleコマンドを叩いてみる
root# locale
LANG=ja_JP.utf8
LANGUAGE=
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=
※画像で表記されてるPOSIXっていうのは、UNIXライクなOS間で互換性を保つために標準規格されたものみたい。
それで、日本語化するにはこいつらを「ja_JP.UTF-8」に設定しないといけない。
上の奴らを変えるだけなら超簡単なんだけど、docker-hubからpullしてきたubuntuイメージには「ja_JP.UTF-8」はロケールの中に含まれていない?で合ってると思う。
root# locale -a | less
※初期状態の使用可能なロケール一覧
ここから、日本語化環境を設定する。
まず、日本語化に必要なパッケージをインストールする。
root# apt-get update
root# apt-get install -y language-pack-ja-base language-pack-ja locales
root# locale-gen ja_JP.UTF-8
root# echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc
root# source ~/.bashrc
3行目のlocale-genコマンドはシステムでローケル利用するために、生成する為に使用するコマンド。
「/etc/locale.gen」ファイルのものを生成する。
引数を指定してやるとそのロケールのみが生成される。
特定のロケールの前に#をつけると該当箇所のみロケールが生成されない。
叩いて実践してみるとすぐ頭に入りました。笑
4行目は.bashrcファイルにLANG=ja_JP.UTF-8を追記してあげて、
5行目のsourceコマンドで実行してやることでlocaleの環境変数を変更している。
ここで、もう一度最初のlocaleコマンドを叩いてみる
# locale
LANG=ja_JP.utf8
LANGUAGE=
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
狙い通り変更できました。
これで、日本語化の設定は終わりです。
最後に、logfileを作成して超効率的に日本語化環境を構築する方法もあります。
それは今回私がすごく参考にした記事に詳細が記載されていますので、興味があれば参照して下さい。
https://rooter.jp/infra-ops/build_docker_jp_env/
#参考文献
https://rooter.jp/infra-ops/build_docker_jp_env/
https://wiki.archlinux.jp/index.php/%E3%83%AD%E3%82%B1%E3%83%BC%E3%83%AB
https://www.wakuwakubank.com/posts/389-linux-bashrc/