LoginSignup
2
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-07

概要

  • やりたかった: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
2
2
0

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
2
2