Help us understand the problem. What is going on with this article?

DockerでポータブルなUbuntuを作ろうとして日本語入力で挫折した

More than 1 year has passed since last update.

概要

  • やりたかった:DockerでUbuntu(日本語入力可)を作成し、開発環境を移植する
  • できた:Dockerコンテナ上でGUIアプリを起動
  • できた:日本語の表示
  • できなかった:日本語の入力

詳細

Dockerfileさえあれば、Windowsでも簡単にUbuntuで開発環境が構築できるような状況を作りたかった。
しかしfcitxがうまく起動していない(?)ため日本語の入力ができなかった。
以下、学習したことを書いていく。

Docker上でGUIアプリを起動する一番楽な方法

コンテナ側

環境変数DISPLAYを設定し、Xの画面をホストに飛ばす。
Windowsの場合、ipconfigの結果が次のようになるはずなので、設定する値は192.168.99.1:0.0となる。
意味は"(ホスト):(ディスプレイ番号).(スクリーン番号)"。

イーサネット アダプター VirtualBox Host-Only Network #4:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::d146:d8f3:409d:7af7%10
   IPv4 アドレス . . . . . . . . . . . .: 192.168.99.1
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .:

起動時オプションとして指定するのが楽。(実際はdocker-compose.ymlで指定する)

$ docker run -e DISPLAY=192.168.99.1:0.0 your-image:tag

ホストマシン側

X Serverをインストールする。(例:VcXsrv)
インストールが終わったらボタンポチポチで設定を行う。これによりコンテナから飛ばされたXの画面を表示できる。
WS000000.JPG
WS000001.JPG
WS000002.JPG

やっておくとよいこと

# 初期設定のaptリポジトリは米国のサーバーなので遅い。日本のサーバーに向ける
$ sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.iij.ad.jp/pub/linux/ubuntu/archive%g" /etc/apt/sources.list

# Firefoxを起動した時に"Failed to execute dbus-launch to autolaunch D-Bus session"が出なくなる
$ apt-get install -y dbus-x11

# ppaリポジトリを追加する際にadd-apt-repositoryが使えるようになるので便利
$ apt-get install -y software-properties-common

Ubunutu(on Docker)で日本語を表示する方法

デフォルトでは英語になっているので、ロケール情報を修正する。
必要なパッケージ/コマンドは次の通り。

$ apt-get install -y fonts-takao-* language-pack-ja tzdate
$ locale-gen ja_JP.UTF-8
$ update-locale LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8
$ dpkg-reconfigure locales
$ ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ dpkg-reconfigure tzdata

やりかけのDockerfile

あとは日本語入力さえできれば、、、。
誰か詳しい人がいたら教えてください。

FROM ubuntu:xenial

ENV DEBIAN_FRONTEND=noninteractive \
    GTK_IM_MODULE=fcitx \
    QT_IM_MODULE=fcitx \
    XMODIFIERS=@im=fcitx \
    DefalutIMModule=fcitx

RUN sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.iij.ad.jp/pub/linux/ubuntu/archive%g" /etc/apt/sources.list \
 && apt-get update \
 && apt-get install -y dbus-x11 \
                       fonts-takao-* \
                       fcitx-mozc \
                       language-pack-ja \
                       tzdata \
                       software-properties-common \
                       x11-server-utils \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/* \
 && locale-gen ja_JP.UTF-8 \
 && update-locale LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 \
 && dpkg-reconfigure locales \
 && ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
 && dpkg-reconfigure tzdata \
 && echo "fcitx-autostart" >> /etc/X11/xinit/xinitrc.d/fcitx \
 && chmod 557 /etc/X11/xinit/xinitrc.d/fcitx
Tadahiro_Yamamura
いくらが好き。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away