ちょっとした好奇心でmacからwindowsアプリに触れてみたくなった。
これはそんな備忘録であり、とりあえず試してみた的なメモとなっている。
Dockerでwineを動かす
こちらのリポジトリを使わせてもらった。感謝。
なお、こちらのREADMEにも書かれている通り、GUIアプリを起動しないのであれば、これ単体で良いが、もしGUIを起動させたいなら下記のコンテナと組み合わせる必要がある
(同じ開発者が作っている。)
こちらはVNC Server(X11vnc)と連携してフレームバッファ付きX11 server(Xvfb)を提供するサービスコンテナとのことで、正直ここらへんは詳しくないのだが、どうやら
ということのようだ。
後でちゃんとさらっておきたいところなので、下のドキュメントを後で読んでみようと思い、こちらにもメモする。
今回はwindowsアプリを GUI
で触ってみたいと考えているので、上の2つのリポジトリを触っていくことにする。
Docker image作成
というわけで、まずはdocker imageの作成から。
どちらも git pull
してローカルでビルドしていく。
wineのdocker image
suchja-wine
というタグでビルドしている。
git clone https://github.com/suchja/wine.git cd wine docker build -t suchja-wine .
x11serverのdocker image
suchja-x11server
というタグでビルドしている。
git clone https://github.com/suchja/x11server.git cd x11server docker build -t suchja-x11server .
ビルドは以上となる。
x11serverとwine、それぞれのdocker コンテナを起動させる
コンテナの起動は下記の通り。
VNC_PASSWORD=newPW
というのがVNCで接続したときに使用するパスワード
# x11server起動 docker run -d --name display -e VNC_PASSWORD=newPW -p 5900:5900 suchja-x11server:latest # wineを起動 docker run --rm -it --link display:xserver --volumes-from display suchja-wine:latest /bin/bash
macのfinder上で command + k
で vnc://localhost:5900
を入力し、上のパスワードを入れると、黒い画面に接続される。
これで接続自体はOK
あらかじめwineを動かしているコンテナ内で下記のコマンドを実行していく必要がある
# wine初期化 wine wineboot --init # バージョンを表示してみる wine --version # メモ帳を起動してみる wine notepad.exe
これでメモ帳が起動する
ちなみにこのやり方で起動した場合、アプリのタイトルバーなどが表示されない。
(ウィンドウを閉じるボタンがついている部分)
このDocker imageには winegui
というエイリアスが用意されており、これはいくつかの引数を渡してwineを起動する。
これを実行することでタイトルバーなどが表示された形でwindowsアプリが起動できる。
winegui notepad.exe
閉じるための x
ボタンなどが表示されているのが分かる。
ちなみに上の winegui
の実際のコマンドの内容は下記のようだ
alias winegui='wine explorer /desktop=DockerDesktop,1024x768'
色々と知らないことに触れられて楽しかった。