LoginSignup
0

More than 3 years have passed since last update.

Debian だって日本語入力したい

Posted at

問題

環境

  • ruby の docker image: 2.7-slim-buster (DockerHub の公式のもの)
  • docker-compose 使ってる

事象

ruby 環境を docker で立ち上げて
irb, pry から 日本語入力しようとしたらできない。(日本語を受け付けない)

最初に結果

docker-compose.yml
web:
  image: ruby:
  environment:
    ...
    LANG: C.UTF-8  # これを追加する
    ...

これで日本語入力ができるようになりました。

詳細

0. ググる

こちら にたどり着く。
なるほど、OSによって対処が異なるのか。

1. 使用しているOSの確認

こちら を参考に使っている docker image のOSを確認した。
どうやら起動している ruby コンテナのOSは Debian らしい。

では、Debian の locale (ロケール) の設定の方法が簡単には見つからず…。

2. locale とは

ロケールとは?

言語_国.文字コード

3. locale コマンド

Linux には locale コマンドがあるとのこと。
fyi: https://www.atmarkit.co.jp/ait/articles/1812/06/news038.html

# コンテナのコンソール開く
$ docker-compose exec web bash

# 利用可能なロケール名を表示する
root@hogehoge# locale -a
C
C.UTF-8
POSIX

4. コンテナのENVに言語を設定

先程のサイトによると

C,POSIX システム標準な英語
utf8(ja_JP.UTF-8) 日本語UTF-8

とのことなので、日本語入力が使えそうなのは C.UTF-8

これを docker-compose.yml でENVに設定してみる。↓

docker-compose.yml
# 上部のコードの再掲

services:
  web:
    image: hoge
    environment:
      ...
      LANG: C.UTF-8  # これを追加する
      ...

5. いざ

日本語を入力してみる。↓


# コンテナのコンソール開く
$ docker-compose exec web bash

# ENVが設定されているか一応確認しておく
root@hogehoge# echo $LANG
C.UTF-8

# irb 開いて日本語入力してみる
root@hogehoge# irb
irb(main):001:0> あああ
Traceback (most recent call last):
        4: from /usr/local/bin/irb:23:in `<main>'
        3: from /usr/local/bin/irb:23:in `load'
        2: from /usr/local/lib/ruby/gems/2.7.0/gems/irb-1.2.1/exe/irb:11:in `<top (required)>'
        1: from (irb):1
NameError (undefined local variable or method `あああ' for main:Object)

入力できるようになりました。

最後に

いろいろと間違っているかもしれません。
その際はご指摘いただけますと幸いです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0