はじめに
OpenFOAMv8(Foundation版)をMacにインストールした後,イメージをカスタマイズする方法をここにまとめておきます。
インストールなどの詳細はこちらのQiitaページやこちらのcfdengineのページも参考になると思います。
Dockerのインストール
Dockerサイトから,Docker Desktopをダウンロード,インストールします。ここでは特筆事項はありません・・・(楽でいいですよね)。
インストールが終了しましたら,Docker Desktopを起動します。こんな感じで右上にクジラマークが現れます。
OpenFOAMv8のインストール
FoundationにあるFoundationに従ってインストールします。openfoam
というディレクトリを作成し,その中で,以下のコマンドを打ち込みます。
sudo curl --create-dirs -o /usr/local/bin/openfoam8-macos http://dl.openfoam.org/docker/openfoam8-macos
sudo chmod 755 /usr/local/bin/openfoam8-macos
OpenFOAMコンテナ
openfoam
のディレクトリ内で以下のコマンド(スクリプト)を実行することにより,OpenFOAMの環境が立ち上がります。
openfoam8-macos
これでblockMeshやsolversが使えるようになっています。
イメージのカスタマイズ
まず,イメージのIDを確認します。
docker images
この__Image ID__をメモしておきます。その後,rootでImageを立ち上げます。
docker run -it -u=root <Image ID>
スクリプトで立ち上げた場合は,aptなどでアプリをインストールしても,記録されません。が,rootで起動した場合はカスタマイズや各種設定変更はコンテナに記録されます。この状態で自分の所望のアプリをインストールします。
その後,コンテナを停止(ログアウト),__Container ID__を確認します。
docker ps -a
変更を加えたコンテナをイメージにcommitさせます。
docker commit <container ID> <Repository>
Repository
ですがデフォルト設定を活かし,openfoam/openfoam8-graphical-app
としておくのが良いです。ここでRepository
を自分の好きな名に変えることも可能ですが,その際は起動スクリプト/usr/local/bin/openfoam8-macos
内のDOCKER_IMAGESを修正する必要があります。
たとえば,Repositoryをopenfoam8としたいのであれば,
docker commit <container ID> openfoam8
DOCKER_IMAGE='openfoam8'
とします。
個人的には,lv
, gmsh
,git
, htop
, python3.8
, ffmpeg
, cmake
, gfortran
, python3-pip(numpy, pandas, torch, tensorflow, scikit-learn, Pillow, matplotlib)
は入れておくと便利かなと思います。1 2
以上でカスタマイズは終了です。お疲れさまでした。
最後に
OpenFOAMのDockerイメージのカスタマイズ方法をまとめたサイト,ページが見当たらなかったこともあり,ここにまとめてみました。まだ,Dockerの使い方を理解できていない,使い切れていないこともあり,ベストなやり方であるかは分かりません・・・。より良いやり方があれば,ご指摘いただければ嬉しいです。