LoginSignup
1
1

More than 3 years have passed since last update.

2021年1月 Docker-composeでOpneModelicaの開発環境を構築(Mac)

Posted at

この記事は?

OpenModelicaのGUI環境をMacbook上のDockerで動かす方法のまとめです。

@matsubaradaisuke さん公開ありがとうございます。
とても参考になりました。

以下の記事の環境違いとなります。

Docker-composeでOpneModelicaの開発環境を構築(Mac) - Qiita

現時点(2021年1月9日)のmacbookではそのまま動かなかった & X11など素人でよくわからない部分があったので備忘録としてまとめました。

私の環境

image.png

事前準備

参考記事に従い homebrewXQuartzDockerを入れていきます。

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

image.png

XQuartzの環境設定を開く

image.png

セキュリティからネットワーククライアントからの接続を許可にチェックを入れる

image.png

そして、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が立ち上がります。

image.png

image.png

その他余談

試行錯誤しながら以下の様なやり方を見つけた。
ネットワーククライアントからの接続を許可有効にする場合は、接続を認証有効にした方が良いとある。

下の設定の場合は、
docker-compose.yml.Xauthorityの共有を追加することで動く

image.png

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 <- デスクトップ
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1