Docker コンテナ内のアプリで日本語入力をする方法
Docker コンテナ内のGUIアプリを起動してホスト側に表示するで、コンテナ内のGUIアプリをホスト側の画面に表示する方法を紹介しました。
leafpad
というメモ帳アプリを起動できるようになりましたが、日本語入力が行なえません。
日本語入力ができるようにする方法を紹介します。
Dockerファイルの作成
Docker コンテナ内のGUIアプリを起動してホスト側に表示するで紹介したDockerfile
に対して修正をします。
日本語のフォントと日本語入力をするためのソフトをインストールし、日本語環境に設定します。
fcitx
を起動するのを忘れないよう注意が必要です。(例では5行目で行っています)
11行目の設定ですが、他のサイトだとGTK_IM_MODULE=fcitx
となっているものが多いですが、私の環境だとGTK_IM_MODULE=xim
としないとうまくできませんでした。
ホストOSの設定や、ホストOSで使用しているインプットメソッドフレームワークが影響しているかもしれません。
Dockerfile
FROM ubuntu
RUN apt-get update \
&& apt-get install -y language-pack-ja-base language-pack-ja fonts-noto-cjk fcitx-mozc \
&& im-config -n fcitx
# 動作確認用のGUIアプリをインストール
RUN apt-get update \
&& apt-get install -y leafpad
ENV GTK_IM_MODULE=xim \
QT_IM_MODULE=fcitx \
XMODIFIERS=@im=fcitx \
DefalutIMModule=fcitx
RUN locale-gen ja_JP.UTF-8
ENV LANG=ja_JP.UTF-8 \
LC_ALL=ja_JP.UTF-8
# ユーザーを作成
ARG DOCKER_UID=1000
ARG DOCKER_USER=docker
ARG DOCKER_PASSWORD=docker
RUN useradd -m \
--uid ${DOCKER_UID} --groups sudo ${DOCKER_USER} \
&& echo ${DOCKER_USER}:${DOCKER_PASSWORD} | chpasswd
USER ${DOCKER_USER}
WORKDIR /home/${DOCKER_USER}/app
動作確認
Docker コンテナ内のGUIアプリを起動してホスト側に表示すると同じ手順でleafpad
を起動すると、今回は日本語入力ができるようになっています。