Dockerで稼働するGUIアプリをMacOSXから利用する
ソケットのリレーツール socat をインストールする
$ brew install socat
X11(XWindow) が含まれる xquartz をインストールする
$ brew cask install xquartz
- インストール後に再起動すること
- 再起動後
xquartz &
で X11 を起動し、環境設定>セキュリティから - 「接続を認証」「ネットワーク・クライアントからの接続を許可」を有効にする
.bash_profile に 環境変数 DISPLAY_MAC
とコマンド startx
を登録
$ cd
$ vim .bash_profile
export DISPLAY_MAC=`ifconfig en0 | grep "inet " | cut -d " " -f2`:0
function startx() {
if [ -z "$(ps -ef|grep XQuartz|grep -v grep)" ] ; then
open -a XQuartz
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" &
fi
}
$ source .bash_profile
$ startx
設定を確認する
echo $DISPLAY_MAC
実行して192.168.0.1:0
などアドレスが表示されることen0
でアドレスが表示されなければ、ifconfig
でアドレスを確認しen1
などに変更する
lsof -i :6000
で socat が表示されることstartx
で X11 が起動すること- 起動時に表示されるターミナルは閉じて良い
$ startx
$ docker run -it --rm -e DISPLAY=$DISPLAY_MAC jess/geary
- emailクライアント Geary の設定画面が表示されること
$ startx
$ cd {ECLIPSE_WORKSPACE_FOLDER}
$ docker run -it --rm -e DISPLAY=$DISPLAY_MAC -v /tmp/.X11-unix:/tmp/.X11-unix -v `pwd`/.eclipse-docker:/home/developer -v `pwd`:/workspace fgrehm/eclipse:v4.4.1
- Eclipse Luna が起動すること