Dockerでlocaleを設定する
Dockerでlocaleを設定したいときがある。
例えばマルチバイトを扱うときだ。
localeを設定していないイメージで処理を行うと ArgumentError: invalid byte sequence in US-ASCII
のようなエラーが発生することがある。
Dockerでlocaleを設定する場合は、以下のようにDockerfileに定義する。
1 | RUN locale-gen ja_JP.UTF-8 |
タイムゾーンも変えたい場合は以下も追記しておく。
1 | RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime |
コンテナに入ってlocaleを表示すると以下のようになった。
1 | root@e893a5fa3eea:/# locale |