Raspberry Pi docker デスクトップ MATE

[GUIDE] Raspbian Lite with RPD/LXDE/XFCE/MATE/i3/Openbox/X11 GUIにはXFCEとMATEのインストール方法についても記述があります。

docker上でうまくインストールできるか試してみました。

XFCEについてはlighdmも依存関係でインストールされてしまい削除してもきれいには動いてくれませんでした。

MATEはlighdmなしにインストール及び動作が可能のようです。

コンテナの作成

ベースイメージは前回作成したこちら

$ docker container run --privileged -d -p 5901:5901 --name stretch_mate -v /home/pi/build:/mnt stretch_lite-img /lib/systemd/systemd

コンテナに入る

$ docker container exec -it stretch_mate /bin/bash

パッケージのインストール

# apt install -y --no-install-recommends xserver-xorg xinit
# apt install -y mate-desktop-environment-core
# apt install -y fcitx-anthy fonts-ipafont fonts-ricty-diminished
# apt install -y tightvncserver autocutsel

vncserverを起動、パスワードを設定

# vncserver :1 -geometry 950x650 -depth 24
You will require a password to access your desktops.
Password: 
Verify:   
Would you like to enter a view-only password (y/n)? n

ホストPi3のターミナルから $ vncviewer localhost :1
いきなりOKですね

通知エリアに変な記号が入っていますがfcitxも起動しています。気にしなければOK
本来はボリュームコントロール、USB、ネットワークマネージャーが並ぶと思います。
ユーザーのフォント設定も入っているようです。
標準フォントを等幅からプロポーショナルフォントにしたい場合は前回のフォントセットを実施

取り敢えずautocutselと自動起動(vncboot)の設定を入れておきます。
~/.vnc/xstartupの編集

#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
cd
autocutsel -fork
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

/etc/init.d/vncboot 新規作成

#! /bin/sh
### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO
# /etc/init.d/vncboot
USER=root
HOME=/root
export LANG='ja_JP.UTF-8'
export USER HOME
case "$1" in
    start)
        echo "Starting VNC Server"
        #Insert your favoured settings for a VNC session
        su $USER -c '/usr/bin/vncserver :1 -geometry 950x650 -depth 24'
        ;;
    stop)
        echo "Stopping VNC Server"
        su $USER -c '/usr/bin/vncserver -kill :1'
        ;;
    *)
        echo "Usage: /etc/init.d/vncboot {start|stop}"
        exit 1
        ;;esac
exit 0
# chmod 755 vncboot
# systemctl enable vncboot

以降はコンテナをrestart(start)するだけでvncviewerからアクセスできます。

少しUIをいじってみました。

通知エリアが気になる場合は削除してfcitxの設定からウインドー内に移動すことができます。

今回試した中では後発ということもあって画面構成は洗練されている感じがします。

ここでcommit

$ docker container commit stretch_mate stretch_mate-img
sha256:7043838bc706a7c24d1a4ab8b8526f8ef4f4bc8163d8d6b9902ce17bfef8dc6f
$ docker image ls | grep mate
stretch_mate-img  latest   7043838bc706    2 minutes ago    1.22GB

イメージサイズはRPDよりは若干大きくなりますが試すにはMATEがおすすめです。

firefox-esr-l10n-jaをインストール

youtubeも特に問題なく再生できるようです。音声(alsa)はホストに送られます。
なぜか前回のrpdの方はクラッシュする率が高いです。
chromium-browserのインストール設定は難しい。

dockerデスクトップも使い方次第で面白いことができそうです。