zukucode
主にWEB関連の情報を技術メモとして発信しています。

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を起動すると、今回は日本語入力ができるようになっています。


関連記事