現在、Docker コンテナーでデスクトップ環境 (XFCE4) を実行する可能性を調査しています。目的は、学生が簡単にインストールおよびセットアップできる VHDL 用の独立した開発環境を作成することです。
XFCE4 イメージは X11docker dockerfiles に基づいており、これまでのところシングル ウィンドウ モードで動作しています。私が達成したいのは、vcxsrv によって作成された複数の画面を持つこのコンテナーを操作できるようにすることです。X サーバーの実行は、個人の好みと画面数に依存するため、ユーザーに任せても問題ありません。どうすれば XFCE4 を起動し、すべての画面にまたがる仮想デスクトップを自動的に生成して分割することができるのだろうか。
私の推測では、それを達成するために xrandr と Arandr を使用していましたが、どういうわけか、コンテナーが X ディスプレイの複数の画面を認識しませんでした。コンテナーで行ってきたすべてのことは、実際にはすべての画面にミラーリングされていました。
次のコマンドで X サーバーを起動しています。
.\vcxsrv.exe -wgl -keyhook +xinerama -ac -screen 0 @1 -screen 1 @2 -screen 2 @3 -screen 3 @4
これは、xrandr から取得した出力です。
root@docker-desktop:/# xrandr --listactivemonitors
Monitors: 1
0: +*default 1920/503x1017/264+0+0 default
root@docker-desktop:/# xrandr --listmonitors
Monitors: 1
0: +*default 1920/503x1017/264+0+0 default
root@docker-desktop:/# xrandr --prop
Screen 0: minimum 0 x 0, current 1920 x 1017, maximum 32767 x 32767
default connected primary 1920x1017+0+0 503mm x 264mm
non-desktop: 0
supported: 0, 1
1920x1017 0.00*
私の Dockerfile:
FROM debian:buster
RUN apt-get update && apt-mark hold iptables && \
env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
dbus-x11 \
xdg-utils \
x11-utils \
&& env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
gtk2-engines-xfce \
gtk3-engines-xfce \
libxfce4ui-utils \
thunar \
xfce4-session \
xfce4-settings \
xfdesktop4 \
xfwm4 \
xfce4-terminal \
arandr \
&& env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
libgtk-3-bin \
mousepad \
&& env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
libxv1 \
&& sed -i 's%<property name="ThemeName" type="string" value="Xfce"/>%<property name="ThemeName" type="string" value="Raleigh"/>%' /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml \
&& env DEBIAN_FRONTEND=noninteractive apt-get remove -y --no-install-recommends xdg-utils
CMD ["startxfce4"]
私の理解では、vcxsrv は X ディスプレイを作成します。X ディスプレイには、複数の画面を含めることができます。Docker コンテナー内のソフトウェアがディスプレイ内の他の画面を認識できないのはなぜですか? 私は何が欠けていますか?