Skip to content

Instantly share code, notes, and snippets.

@asufana
Created July 25, 2016 05:30
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save asufana/229cdac01fccee1a7d32ca8b5d7cfee6 to your computer and use it in GitHub Desktop.
Save asufana/229cdac01fccee1a7d32ca8b5d7cfee6 to your computer and use it in GitHub Desktop.
Dockerで稼働するGUIアプリをMacOSXから利用する

GUI APP on Docker

Dockerで稼働するGUIアプリをMacOSXから利用する

socatのインストール

ソケットのリレーツール socat をインストールする

$ brew install socat

XWindowのインストール

X11(XWindow) が含まれる xquartz をインストールする

$ brew cask install xquartz
  • インストール後に再起動すること
  • 再起動後 xquartz & で X11 を起動し、環境設定>セキュリティから
  • 「接続を認証」「ネットワーク・クライアントからの接続を許可」を有効にする

Proxy設定

.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 が起動すること
    • 起動時に表示されるターミナルは閉じて良い

GUIアプリの実行

テスト

$ startx
$ docker run -it --rm -e DISPLAY=$DISPLAY_MAC jess/geary
  • emailクライアント Geary の設定画面が表示されること

Eclipse

$ 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 が起動すること
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment