fenics/Dockerfile
2021-12-19 20:52:03 -07:00

73 lines
1.8 KiB
Docker

FROM docker.io/python:3.9.7-bullseye
ARG DEBIAN_FRONTEND=noninteractive
# dolfin
RUN apt-get update -yqq && \
apt-get install -yqq \
build-essential \
cmake \
gfortran \
liblapack3 liblapack-dev \
libblas3 libblas-dev \
libeigen3-dev \
libboost-all-dev \
petsc-dev \
slepc-dev \
&& \
apt-get -qq purge && \
apt-get -qq clean && \
rm -rf /var/lib/apt/lists/*
RUN pip install numpy scipy
# fenics
RUN pip install -U fenics-ffc
ENV FENICS_VERSION=2019.1.0.post0
RUN mkdir -p /tmp/src/
RUN git config --global user.email mm@clfx.cc
RUN git config --global user.name mm
#RUN apt-get update -yqq && apt-get install libopenmpi-dev
RUN cd /tmp/src/ && \
git clone --branch=$FENICS_VERSION https://bitbucket.org/fenics-project/dolfin
COPY *.patch /tmp/src/dolfin/
RUN cd /tmp/src/dolfin && \
git am algorithm.patch && \
git am boost.patch && \
cd .. && \
mkdir dolfin/build && cd dolfin/build && \
cmake .. && make install
ENV PYBIND11_VERSION=2.2.3
RUN cd /tmp/src/ && \
wget -nc --quiet https://github.com/pybind/pybind11/archive/v${PYBIND11_VERSION}.tar.gz && \
tar -xf v${PYBIND11_VERSION}.tar.gz && \
cd pybind11-${PYBIND11_VERSION} && \
mkdir build && cd build && \
cmake -DPYBIND11_TEST=off .. && make install && \
rm -rf v${PYBIND11_VERSION}.tar.gz
RUN cd /tmp/src/dolfin/python && \
pip3 install .
# mshr
RUN apt-get update -yqq && \
apt-get install -yqq \
libgmp-dev \
libmpfr-dev \
&& \
apt-get -qq purge && \
apt-get -qq clean && \
rm -rf /var/lib/apt/lists/*
RUN cd /tmp/src/ && \
git clone --branch=2019.1.0 https://bitbucket.org/fenics-project/mshr && \
mkdir mshr/build && cd mshr/build && \
cmake .. && make install
RUN cd /tmp/src/mshr/python && \
pip3 install .
RUN echo "source /usr/local/share/dolfin/dolfin.conf" >> /root/.profile