この記事は?
OpenModelicaのGUI環境をMacbook
上のDocker
で動かす方法のまとめです。
@matsubaradaisuke さん公開ありがとうございます。
とても参考になりました。
以下の記事の環境違いとなります。
Docker-composeでOpneModelicaの開発環境を構築(Mac) - Qiita
現時点(2021年1月9日)のmacbookではそのまま動かなかった & X11など素人でよくわからない部分があったので備忘録としてまとめました。
私の環境
事前準備
参考記事に従い homebrew
で XQuartz
、Docker
を入れていきます。
XQuartz
# homebrewのアップデート
> brew update-reset && brew update
# XQuartzのインストール
> brew install xquartz
==> Downloading https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.11.dmg
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/32e50e8f1e21542b847041711039fa78d44febfed466f834a9281c44d75c
######################################################################## 100.0%
==> Installing Cask xquartz
==> Running installer for xquartz; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
fifi
installer: Package name is XQuartz 2.7.11
installer: Installing at base path /
installer: The install was successful.
🍺 xquartz was successfully installed!
一旦ログインし直して
> echo $DISPLAY
/private/tmp/com.apple.launchd.jehSFXMP8l/org.macosforge.xquartz:0
何か表示されたらOK
brew cask install xquartz
いろいろ記事を見るとcaskを使う例がありましたが私の環境ではエラーがでました。brew install xquartz
でインストールできました。
Docker
ここでもcask
でエラーがでました。
brew cask install docker
ではなく--cask
オプションを使ってbrew install docker --cask
でインストールできました。
# homebrew アップデート
brew update-reset && brew update
# docker インストール
brew install docker
# docker インストール
brew install docker --cask
> docker --version
Docker version 20.10.2, build 2291f61
> open /Applications/Docker.app
起動できたらOK
Docker Desktop for MacをHomebrewでインストール(Homebrew Caskのエラー解決メモ付き) - Qiita
XQuartzの設定
どうもXQuartzの設定をする必要がある。
X windowが素人なので探りながらだったのだが、
xhost
によりXQuartz
が立ち上がるみたい
> xhost
XQuartzの環境設定
を開く
セキュリティ
からネットワーククライアントからの接続を許可
にチェックを入れる
そして、Dockに入っているXQuartz
を終了させる.
そして、IPアドレスをしていしてxhost
を立ち上げる
> xhost +192.168.40.188
このあとは、参考記事と同じです。
OpenModelica
参考記事に従い進める.
Docker-composeでOpneModelicaの開発環境を構築(Mac) - Qiita
以下コマンドを実行していく
> git clone https://github.com/matsubaraDaisuke/openmodelica-docker-start.git
> cd openmodelica-docker-start
> make IP
networksetup -getinfo Wi-Fi | grep "^IP address:"
IP address: 192.168.40.188
> xhost +192.168.40.188 // e.g. $xhost +192.168.12.1
docker-compose.yml
version: '3'
services:
openmodelica:
container_name: openmodelica
build: ./docker/openmodelica
#tty: true
environment:
- DISPLAY=192.168.40.188:0.0
volumes:
- ./om-develop:/home/openmodelica
- /tmp/.X11-unix:/tmp/.X11-unix
dockerのbuild
> docker-compose up --build
> docker-compose run openmodelica /bin/bash
> docker-compose stop openmodelica
コンテナ内にて、OMEdit
を起動する
> OMEdit
成功すると以下のようなOMEditが立ち上がります。
その他余談
試行錯誤しながら以下の様なやり方を見つけた。
ネットワーククライアントからの接続を許可
を有効
にする場合は、接続を認証
も有効
にした方が良いとある。
下の設定の場合は、
docker-compose.yml
に.Xauthority
の共有を追加することで動く
version: '3'
services:
openmodelica:
container_name: openmodelica
build: ./docker/openmodelica
#tty: true
environment:
- DISPLAY=192.168.40.188:0
volumes:
- ./om-develop:/home/openmodelica
- /tmp/.X11-unix:/tmp/.X11-unix
- $HOME/.Xauthority:/root/.Xauthority <- これ追加
xhost
の権限設定はIP指定
じゃなくてもできそう
> xhost +local:docker
Makefile
IP:
networksetup -getinfo Wi-Fi | grep "^IP address:"
build:
docker-compose up --build
run:
docker-compose run openmodelica /bin/bash
stop:
docker-compose stop openmodelica
ls:
docker container ls
docker images
DISPLAY
について
ラップトップ
と デスクトップ
で、ディスプレイの番号の表示が異なるみたい
- 192.168.40.188:0 <-
ラップトップ
- 192.168.40.188:0.0 <-
デスクトップ