|
2 | 2 | # Dockerfile.petsc: Installs PETSc |
3 | 3 | ############################################################## |
4 | 4 |
|
5 | | -# Base image with compilers |
6 | | -# TODO: to be updated, but made some additions to Dockerfile.cpu so need to |
7 | | -# use the one from my dockerhub |
8 | | -ARG base=zoeleibowitz/bases:cpu-gcc |
| 5 | +ARG base=devitocodes/devito:gcc-dev-amd64 |
9 | 6 |
|
10 | 7 | FROM $base |
11 | 8 |
|
12 | | -RUN apt-get update && apt-get install -y \ |
13 | | - git gfortran pkgconf libopenblas-serial-dev && \ |
14 | | - python3 -m venv /venv && \ |
15 | | - /venv/bin/pip install --no-cache-dir --upgrade pip && \ |
16 | | - /venv/bin/pip install --no-cache-dir --no-binary numpy numpy && \ |
| 9 | +USER root |
| 10 | + |
| 11 | +RUN python3 -m venv /venv && \ |
17 | 12 | mkdir -p /opt/petsc && \ |
18 | 13 | cd /opt/petsc && \ |
19 | | - git clone -b v3.23.0 https://gitlab.com/petsc/petsc.git petsc && \ |
| 14 | + git clone -b v3.24.0 https://gitlab.com/petsc/petsc.git petsc && \ |
20 | 15 | cd petsc && \ |
21 | 16 | ./configure --with-fortran-bindings=0 --with-mpi-dir=/opt/openmpi \ |
22 | 17 | --with-openblas-include=$(pkg-config --variable=includedir openblas) \ |
23 | 18 | --with-openblas-lib=$(pkg-config --variable=libdir openblas)/libopenblas.so \ |
24 | 19 | PETSC_ARCH=devito_build && \ |
25 | 20 | make all |
26 | 21 |
|
| 22 | +# Remove existing devito |
| 23 | +RUN rm -rf /app/devito/.git |
| 24 | + |
| 25 | +# Copy Devito from petsc branch |
| 26 | +ADD . /app/devito |
| 27 | + |
| 28 | +# Remove git files |
| 29 | +RUN rm -rf /app/devito/.git |
| 30 | + |
| 31 | +# Mpi4py |
| 32 | +RUN eval "$MPI4PY_FLAGS /venv/bin/pip install --no-cache-dir --verbose -r /app/devito/requirements-mpi.txt" |
| 33 | + |
| 34 | +# Install Devito with petsc requirements |
| 35 | +RUN /venv/bin/pip install --no-cache-dir -e /app/devito[extras,tests,petsc] && rm -rf ~/.cache/pip |
| 36 | + |
27 | 37 | ENV PETSC_DIR="/opt/petsc/petsc" |
28 | 38 | ENV PETSC_ARCH="devito_build" |
| 39 | + |
| 40 | +# Switch back to non-root user |
| 41 | +USER app |
0 commit comments