mirror of
https://github.com/mindthemath/fenics.git
synced 2025-05-15 04:57:36 -06:00
multi-stage build attempts
This commit is contained in:
parent
0d48350473
commit
a9ebc2798e
45
Dockerfile
45
Dockerfile
@ -1,4 +1,5 @@
|
|||||||
FROM docker.io/python:3.9.7-bullseye
|
ARG PYTHON_TAG
|
||||||
|
FROM docker.io/debian:bullseye-20211220-slim AS fenics
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
# dolfin
|
# dolfin
|
||||||
@ -18,17 +19,14 @@ RUN apt-get update -yqq && \
|
|||||||
apt-get -qq clean && \
|
apt-get -qq clean && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN pip install numpy scipy
|
|
||||||
# fenics
|
# fenics
|
||||||
RUN pip install -U fenics-ffc
|
|
||||||
ENV FENICS_VERSION=2019.1.0.post0
|
|
||||||
RUN mkdir -p /tmp/src/
|
RUN mkdir -p /tmp/src/
|
||||||
|
|
||||||
RUN git config --global user.email mm@clfx.cc
|
RUN git config --global user.email mm@clfx.cc
|
||||||
RUN git config --global user.name mm
|
RUN git config --global user.name mm
|
||||||
|
ENV FENICS_VERSION=2019.1.0.post0
|
||||||
|
|
||||||
#RUN apt-get update -yqq && apt-get install libopenmpi-dev
|
#RUN apt-get update -yqq && apt-get install libopenmpi-dev
|
||||||
RUN cd /tmp/src/ && \
|
RUN mkdir -p /tmp/src/ && cd /tmp/src/ && \
|
||||||
git clone --branch=$FENICS_VERSION https://bitbucket.org/fenics-project/dolfin
|
git clone --branch=$FENICS_VERSION https://bitbucket.org/fenics-project/dolfin
|
||||||
COPY *.patch /tmp/src/dolfin/
|
COPY *.patch /tmp/src/dolfin/
|
||||||
RUN cd /tmp/src/dolfin && \
|
RUN cd /tmp/src/dolfin && \
|
||||||
@ -38,19 +36,6 @@ RUN cd /tmp/src/dolfin && \
|
|||||||
mkdir dolfin/build && cd dolfin/build && \
|
mkdir dolfin/build && cd dolfin/build && \
|
||||||
cmake .. && make install
|
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
|
# mshr
|
||||||
RUN apt-get update -yqq && \
|
RUN apt-get update -yqq && \
|
||||||
apt-get install -yqq \
|
apt-get install -yqq \
|
||||||
@ -61,11 +46,31 @@ RUN apt-get update -yqq && \
|
|||||||
apt-get -qq clean && \
|
apt-get -qq clean && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN cd /tmp/src/ && \
|
RUN mkdir -p /tmp/src/ && cd /tmp/src/ && \
|
||||||
git clone --branch=2019.1.0 https://bitbucket.org/fenics-project/mshr && \
|
git clone --branch=2019.1.0 https://bitbucket.org/fenics-project/mshr && \
|
||||||
mkdir mshr/build && cd mshr/build && \
|
mkdir mshr/build && cd mshr/build && \
|
||||||
cmake .. && make install
|
cmake .. && make install
|
||||||
|
|
||||||
|
|
||||||
|
FROM docker.io/python:${PYTHON_TAG} AS python-bindings
|
||||||
|
ENV PYBIND11_VERSION=2.2.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 && \
|
||||||
|
rm -rf v${PYBIND11_VERSION}.tar.gz
|
||||||
|
|
||||||
|
RUN pip install numpy scipy
|
||||||
|
RUN pip install -U fenics-ffc
|
||||||
|
|
||||||
|
COPY --from=fenics /tmp/src/dolfin /tmp/src/
|
||||||
|
RUN cd /tmp/src/dolfin/python && \
|
||||||
|
pip3 install .
|
||||||
|
|
||||||
|
COPY --from=fenics /tmp/src/mshr /tmp/src/
|
||||||
RUN cd /tmp/src/mshr/python && \
|
RUN cd /tmp/src/mshr/python && \
|
||||||
pip3 install .
|
pip3 install .
|
||||||
|
|
||||||
|
18
Makefile
18
Makefile
@ -1,7 +1,15 @@
|
|||||||
build: 2019.1.0
|
build: 2019.1.0
|
||||||
|
|
||||||
latest:
|
buster:
|
||||||
docker build -t fenics -f Dockerfile .
|
for TAG in $(shell echo 3.6.{9..13}-buster | sort); do \
|
||||||
|
VER=2019.1.0; \
|
||||||
|
echo BUILDING $$VER-$$TAG; \
|
||||||
|
docker build \
|
||||||
|
-t mindthemath/fenics-arm64:$$VER-$$TAG \
|
||||||
|
--build-arg PYTHON_TAG=$$TAG \
|
||||||
|
-f Dockerfile . && \
|
||||||
|
docker push mindthemath/fenics-arm64:$$VER-$$TAG || exit ; \
|
||||||
|
done
|
||||||
|
|
||||||
2019.1.0:
|
2019.1.0:
|
||||||
docker build -t fenics -t fenics-2019.1.0 -f Dockerfile-2019.1.0 .
|
docker build -t fenics -t fenics-2019.1.0 -f Dockerfile-2019.1.0 .
|
||||||
@ -11,9 +19,9 @@ latest:
|
|||||||
|
|
||||||
SHELL=bash
|
SHELL=bash
|
||||||
# docker buildx build --platform linux/amd64,linux/arm64
|
# docker buildx build --platform linux/amd64,linux/arm64
|
||||||
buster:
|
old_buster:
|
||||||
# for TAG in $(shell echo 3.6.{9..13}-buster 3.{7..8}.{4..10}-buster {3.6.{14..15},3.{7..8}.{11..12},3.9.{6..9},3.10.{0..1}}-buster | sort); do
|
# for TAG in $(shell echo 3.{7..8}.{4..10}-buster {3.6.{14..15},3.{7..8}.{11..12},3.9.{6..9},3.10.{0..1}}-buster | sort); do
|
||||||
for TAG in $(shell echo 3.{7..8}.{4..10}-buster {3.6.{14..15},3.{7..8}.{11..12},3.9.{6..9},3.10.{0..1}}-buster | sort); do \
|
for TAG in $(shell echo 3.6.{9..13}-buster 3.{7..8}.{4..10}-buster {3.6.{14..15},3.{7..8}.{11..12},3.9.{6..9},3.10.{0..1}}-buster | sort); do \
|
||||||
VER=2019.1.0;\
|
VER=2019.1.0;\
|
||||||
echo BUILDING $$VER-$$TAG; \
|
echo BUILDING $$VER-$$TAG; \
|
||||||
docker pull mindthemath/fenics-arm64:$$VER-$$TAG; \
|
docker pull mindthemath/fenics-arm64:$$VER-$$TAG; \
|
||||||
|
Loading…
Reference in New Issue
Block a user