Dockerを使ったfeapプログラムの実行
前書き
feap(A Finite Element Analysis Program)
日本語だと有限要素解析プログラム。
そのプログラムの学習用コードの実行がうまくできないと知人から相談されたため、Dockerで環境を作ってみた。
作成したコードはこちら
feapの公式サイトはこちら
苦悩
最初にGitHubでDocker feapとダメ元で検索し、見事に1つだけヒット。
Dockerfileを見つけたのはいいものの、ファイル内で指定されているリンクが切れていたためそのままビルドは不可。
Dockerfileを修正することになった。
Dockerfile:
FROM ubuntu
RUN apt-get update && apt-get install -y \
build-essential \
gcc \
gfortran \
unzip \
wget \
xserver-xorg-dev \
&& rm -rf /var/lib/apt/lists/*
-ENV FEAPPVHOME3_1 /feappv/ver31
+ENV FEAPPVHOME5_1 /feappv/feappv-5.1.1c
WORKDIR /feappv
-ADD http://www.ce.berkeley.edu/projects/feap/feappv/feappv31.zip .
+ADD https://github.com/sanjayg0/feappv/archive/v5.1.1c.zip .
COPY makefile.in .
-RUN unzip feappv31.zip \
+RUN unzip v5.1.1c.zip \
&& mkdir -p decks \
-&& cp makefile.in ver31/ \
-&& cd ver31 \
+&& cp makefile.in feappv-5.1.1c/ \
+&& cd feappv-5.1.1c \
&& make install
+RUN echo "alias feap='/feappv/feappv-5.1.1c/main/feappv'" >> /root/.bashrc
WORKDIR /feappv/decks
CMD /feappv/ver31/main/feappv
第二の苦悩、Xサーバー
DockerコンテナーからホストOSへXサーバーを介してGUIを立ち上げるのに苦戦した。
サイトをあさっているうち、参考になりそうなサイトをみつけた。 ↓
WSL2環境で動作するDockerを使用してX Window SystemのGoogle Chromeブラウザを動作させる
案内に従い、windowsとDockerに入れたUbuntuの双方の中へXサーバーをインストール。
おわりに
ダメもとだったが何とか動いた。
ただgitをあまり知らない頃に作ったせいで、remote repositoryにpushしたとき、改行コードの問題で友人がgit
cloneする頃には文字化けでプログラムが動かないという不具合があった。.editorconfig
を入れておくべき…