fenics/Dockerfile
2021-12-26 13:21:20 -07:00

80 lines
2.3 KiB
Docker

ARG PYTHON_TAG=3.9.7-bullseye
FROM docker.io/python:$PYTHON_TAG
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/*
# fenics
RUN git config --global user.email fenics@dockerhost
RUN git config --global user.name fenics
RUN mkdir -p /tmp/src/ && cd /tmp/src/ && \
git clone https://bitbucket.org/fenics-project/ufl && \
cd ufl && pip install . && cd .. && \
git clone https://bitbucket.org/fenics-project/dijitso && \
cd dijitso && pip install . && cd .. &&\
git clone https://bitbucket.org/fenics-project/fiat && \
cd fiat && pip install . && cd .. && \
git clone https://bitbucket.org/fenics-project/ffc && \
cd ffc && \
sed -i 's|2021.1.0|2019.2.0.dev0|g' setup.py && \
pip install . && cd .. && \
rm -rf /tmp/src/*
ENV PYBIND11_VERSION=2.4.3
RUN mkdir -p /tmp/src/ && 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 && cd / && \
rm -rf /tmp/src/*
COPY patches.patch /tmp/latest.patch
RUN mkdir -p /tmp/src/ && cd /tmp/src/ && \
git clone https://bitbucket.org/fenics-project/dolfin && \
cd dolfin && \
git checkout 3eacdb46ed4e6dcdcbfb3b2f5eefa73f32e1b8a8 && \
git am /tmp/latest.patch && \
mkdir build && cd build && \
cmake .. && make install && cd .. && \
cd python && pip3 install . && cd / && \
rm -rf /tmp/src/*
# 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 mkdir -p /tmp/src/ && cd /tmp/src/ && \
git clone https://bitbucket.org/fenics-project/mshr && \
cd mshr && \
git checkout c27eb18f47cb35d27c863c2db584915659e64c7f && \
. /usr/local/share/dolfin/dolfin.conf && \
mkdir build && cd build && \
cmake .. && make install && cd .. && \
cd python && pip3 install . && cd / && \
rm -rf /tmp/src/*
RUN echo ". /usr/local/share/dolfin/dolfin.conf" >> /root/.bashrc