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 の思想的にはあまりすべきじゃないよね。
スマートな方法とは言えないので、ホストのファイルマウントしていじるほうがいいと思うよ。
コメント