dockerコンテナ内で日本語表示・日本時間表示するためにマウントする場所メモ
日本語表示
日本語対応していないdockerイメージ(公式ubuntuとか)は、いくら LANG=ja_JP.UTF-8 しても日本語表示になってくれません(localeにないので…)
英語で出ちゃってる例)
$ docker run --rm -e LANG=ja_JP.UTF-8 ubuntu date Sun Jul 17 08:58:02 UTC 2016
言語パックをインストールすれば対応可能ですが、それをせずに、ホストのファイルをマウントすることだけで対応してみます。
日本語を表示できる例)
$ docker run --rm -e LANG=ja_JP.UTF-8 \ -v /usr/lib/locale/locale-archive:/usr/lib/locale/locale-archive:ro \ ubuntu date 2016年 7月 17日 日曜日 08:59:25 UTC
locale-genで生成されたファイルは/usr/lib/locale/locale-archiveになるらしく、ホストの同ファイルをマウントするとコンテナ内でもホストと同様に日本語を表示できるようになりました。
日本時間表示
さて、上記ではUTCでしたが、今度はこれをJSTに変更します。
日本語・日本時間で表示できる例)
$ docker run --rm -e LANG=ja_JP.UTF-8 \ -v /usr/lib/locale/locale-archive:/usr/lib/locale/locale-archive:ro \ -v /etc/localtime:/etc/localtime:ro \ ubuntu date 2016年 7月 17日 日曜日 18:01:27 JST
タイムゾーンの設定ファイルは/etc/localtimeなので、言語ファイルの時と同様にマウントすると、コンテナ内でもホストと同じタイムゾーンで表示されました。