カテゴリー
Linux

Debian ベースの Docker コンテナの中で日本語を使えるようにするまで

はじめに

CLI で日本語を打とうとしたら、できませんでした。全角で日本語を打てるのですけれども、変換、確定するときに消えてしまいました。 vim をインストールし、そこで日本語を入力してみようとしてみましたが、やはりダメでした。別の文字へと変換されてしまったのです。例えば "あいう" => "~A~B~A~D~A~F" となってしまいました。

結論

  • コンテナ内の CLI ではやはり日本語を使用できていない。
  • コンテナ内の次の環境での結果
    • PHP の REPL (php -a): 日本語を使用できた。
    • MySQL クライアント (mysql -u root -p ...): 日本語を使用できた。
    • Vim: 日本語を使用できた。

Debian

apt-get update && apt-get install -y locales
sed -i -E 's/# (ja_JP.UTF-8)/\1/' /etc/locale.gen
locale-gen
export LANG=ja_JP.UTF-8

MySQL や PHP など debian:buster-slim ベースのイメージの Dockerfile に書く場合

RUN apt-get update && apt-get install -y \
  locales \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*
RUN sed -i -E 's/# (ja_JP.UTF-8)/\1/' /etc/locale.gen \
  && locale-gen
ENV LANG ja_JP.UTF-8