docker hub の ubuntu は日本語環境ないよ
結論として、 docker hub の ubuntu には日本語環境入ってないから日本語使うには language-pack 入れないといけない
どうやら centos とかでも同じだった模様
症状としてはこんな感じ
coreos $ docker run --rm -it ubuntu:14.04 bash root # 日本語 root # \! . 2to3-3.4 \: MAKEDEV \[ \[\[ ]] a2p add-shell addgroup addpart adduser agetty ...
↑ はちょっとわかりにくいけど、「日本語」という文字を送った時点で何かずらずらと表示される
ENTER は押してない
他の文字だと、単に消える、とか
雰囲気としてはコントロールシークエンスとして処理されている感じ
グーグル先生によると --show-control-chars で日本語が表示されるよ!っていう記事がちらほらあるけどそうじゃないよね
locale を見てみると、
root # locale LANG= 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=
locale が怪しい?
とりあえず日本語に設定してみる
root # export LC_ALL=ja_JP.UTF-8 bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8): No such file or directory
ロケールがないようである
・・・日本語環境がない、のか?
この記事を見ると language-pack を入れないといけないようである
root # apt-get install language-pack-ja-base language-pack-ja
これやって locale の設定したら日本語が入力できるようになった
最初は ssh の問題かと思っていた
これ、 ssh から接続していたので、 LC_* の環境変数はローカルから引き継がれていた
このため、 locale の表示は最初から ja_JP.UTF-8 だった
しかし、日本語環境がないため、単に設定だけ ja_JP.UTF-8 になっていただけで、日本語の入力はできない状態だった
locale の設定も同じなのになんでだーーーってなったけど、ふと docker run で直接入ってみたら同じ症状が出た
それまで ssh が問題だと思ってたが実際は日本語環境がないためだったわけ