Dockerを使ってOpenFOAM用のイメージを作成する方法
はじめに
OpenFOAMは、CFD(計算流体力学)の分野で広く使われるオープンソースのシミュレーションソフトウェアです。しかし、異なるバージョンや環境設定の依存関係の管理が難しい場合があります。Dockerを使用することで、環境の再現性や移植性を確保しつつ、OpenFOAMを効率的に利用できます。以前にも、Mac上でOpenFOAMのDockerイメージをカスタマイズする方法を掲載しました。が、その情報自体が古くなってしまいました。そこで本ガイドでは、Dockerfileを作成してOpenFOAMのDockerイメージを構築する手順を改めてまとめておきたいと思います。
必要な準備
前提条件
-
Docker がインストールされていること。
- インストール方法: Docker公式ページ
- 基本的なLinuxコマンドの知識。
Dockerのインストール (Homebrew)
% brew install --cask docker
(省略)
% brew list --version | grep docker
docker 4.11.1,84025
作業ディレクトリの準備
以下のコマンドで作業用ディレクトリを作成します。
mkdir openfoam
cd openfoam
Dockerfileの作成
作業ディレクトリ内に以下の内容でDockerfileを作成します。
ベースイメージの指定(Ubuntuを推奨)
FROM ubuntu:22.04
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
software-properties-common \
wget \
build-essential \
cmake \
gcc \
g++ \
python3 \
python3-pip \
&& apt-get clean
# OpenFOAMの公式リポジトリを追加
RUN wget -O - http://dl.openfoam.org/gpg.key | apt-key add - && \
add-apt-repository http://dl.openfoam.org/ubuntu
# OpenFOAMのインストール
RUN apt-get update && apt-get install -y \
openfoam10 && \
apt-get clean
# bashrcにOpenFOAMの環境設定を追加
RUN echo "source /opt/openfoam10/etc/bashrc" >> ~/.bashrc
# 作業ディレクトリの設定
WORKDIR /home/openfoam
Imageのビルド
作成したDockerfileをもとに、Dockerイメージをビルドします。
docker build -t openfoam-image .
-t openfoam-image は作成するイメージの名前を指定します。
Containerの実行
作成したイメージからコンテナを起動します。
docker run -it --rm openfoam-image bash
- -it は対話型モードを指定。
- --rm はコンテナ終了時に自動削除を有効にします。
- openfoam-image は作成したイメージ名。
OpenFOAMの動作確認
コンテナ内で以下のコマンドを実行し、OpenFOAMが正しく動作するか確認します。
foamInstallationTest
エラーがなければ、セットアップは成功です。
応用例
永続的なボリュームのマウント
ホストマシンのデータをコンテナ内で共有したい場合は、以下のようにボリュームをマウントして起動します。
docker run -it --rm -v $(pwd):/home/openfoam openfoam-image bash
これにより、現在のディレクトリがコンテナ内の/home/openfoamにマウントされます。
おわりに
以下に私が使用したDockerfileを挙げておきます。
# Start from the official Ubuntu Bionic (18.04 LTS) image
FROM ubuntu:22.04
# Install any extra things we might need
RUN apt-get update \
&& apt-get install -y \
vim \
ssh \
sudo \
wget \
software-properties-common ;\
rm -rf /var/lib/apt/lists/*
RUN apt-get update \
&& apt-get install -y \
lv \
htop \
neofetch \
curl \
git ;\
rm -rf /var/lib/apt/lists/*
# Create a new user called foam
RUN useradd --user-group --create-home --shell /bin/bash foam ;\
echo "foam ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# Install OpenFOAM v2212
RUN curl https://dl.openfoam.com/add-debian-repo.sh | bash
RUN apt-get update \
&& apt-get install -y openfoam2206-default ;\
rm -rf /var/lib/apt/lists/*
# set the default container user to foam
USER foam
Dockerを活用することで、複雑な環境設定なしにOpenFOAMを手軽に利用できるようになります。このガイドを基に、自分の環境やプロジェクトに適したDockerイメージを作成してみてください。