docker の日本語設定

この記事は1年以上前に書かれたものです。 情報が古い可能性があります。

debian on Docker on Ubuntu で日本語が使えない問題。
vim で日本語を打つと ?~~a みたいなわけのわからないものになる。

最初文字コードだと思い、utf-8 に変更したが効果なし。

よく考えたらコンテナが日本語設定になってないんじゃないかと locale を調べてみると POSIX だったので .bash_profile に以下を追加したが効果なし。

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory

日本語は入ってないみたいなので
apt-get install language-pack-ja

で、なんと
E: Unable to locate package language-pack-ja
apt-get update しても換わらず。orz

この時点で手詰まり。

よく考えると Debian なので、Ubuntu の language-pack-ja がないみたい。
debian でぐぐって task-japanese をインストール

locale-gen がない。
apt-get install locales

/etc/locale.gen の ja_JP.UTF-8 のコメントを解除
locale-gen
update-locale LANG=ja.JP.UTF-8

でまたエラー。
LANGUAGE=(unset)
で Falling back to the standard locale (“C”) とのこと。

もちろんまだ日本語は使えず。

あきらめて別の手段探し。。。
dpkg-reconfigure locale が使えたので 275. ja_JP を選択。
まだ使えなかったので source ~/.bash_profile で同じエラー。


bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory

jp_JP しかないんじゃねと思って bash_profile を jp_JP.UTF-8 にしたらエラーなし!
vim を開いて無事使えるのを確認。

すごく大変だった。
次から debian のコンテナ作るときには最初に次のようにしよう。

まとめ

apt-get install -y locales
locale-gen ja-JP.UTF-8
localedef -f UTF-8 -i ja_JP ja_JP

.bash_profile に追記
export LANG=ja_JP.UTF-8
export LANGUAGE=ja_JP:jp
export LC_ALL=ja_JP.UTF-8

2018/10/23 追記。
なんかこのページだけたまに閲覧者が来てるみたいなので。

docker コンテナの中で無理やり vim 使っていじるなんてことやってるけど、Docker の思想的にはあまりすべきじゃないよね。

スマートな方法とは言えないので、ホストのファイルマウントしていじるほうがいいと思うよ。

コメント

タイトルとURLをコピーしました