cp2k/tools/docker/Dockerfile.test_spack_psmp-opensuse

96 lines
2.5 KiB
Text

#
# This file was created by generate_dockerfiles.py.
# Usage: ./spack_cache_start.sh; podman build --shm-size=1g -t spack_psmp-opensuse -f ./Dockerfile.test_spack_psmp-opensuse ../../
#
ARG BASE_IMAGE="opensuse/leap:16.0"
###### Stage 1: Build CP2K dependencies ######
FROM "${BASE_IMAGE}" AS build_deps
RUN zypper --non-interactive --quiet ref && \
zypper --non-interactive --quiet in --no-recommends \
bzip2 \
cmake \
diffutils \
findutils \
gcc gcc13 gcc-c++ gcc13-c++ gcc-fortran gcc13-fortran \
git \
gzip \
libssh-devel \
libopenssl-devel \
libtool \
lsb-release \
make \
patch \
pkgconf \
python313 \
python313-devel \
unzip \
wget \
xz \
zstd \
&& zypper --non-interactive --quiet clean --all
ARG IMAGE_TAG
ENV IMAGE_TAG=${IMAGE_TAG:-spack_psmp-opensuse}
ARG SPACK_CACHE
ENV SPACK_CACHE="${SPACK_CACHE:-s3://spack-cache --s3-endpoint-url=http://host.containers.internal:9000}"
# Build CP2K dependencies
WORKDIR /opt/cp2k
COPY ./tools/spack ./tools/spack
COPY ./tools/docker ./tools/docker
COPY ./make_cp2k.sh .
RUN ./make_cp2k.sh -bd_only -cv psmp -gpu none -gv 13 -mpi mpich -ue
###### Stage 2: Build CP2K ######
FROM build_deps AS build_cp2k
COPY ./src ./src
COPY ./data ./data
COPY ./tools/build_utils ./tools/build_utils
COPY ./cmake ./cmake
COPY ./CMakeLists.txt .
RUN ./make_cp2k.sh -cv psmp -gv 13 -gpu none -mpi mpich
###### Stage 3: Install CP2K ######
FROM "${BASE_IMAGE}" AS install_cp2k
RUN zypper --non-interactive --quiet ref && \
zypper --non-interactive --quiet in --no-recommends \
gcc gcc13 gcc-c++ gcc13-c++ gcc-fortran gcc13-fortran \
python313 \
&& zypper --non-interactive --quiet clean --all
WORKDIR /opt/cp2k
# Install CP2K dependencies built with spack
COPY --from=build_cp2k /opt/cp2k/spack/spack/opt/spack ./spack/spack/opt/spack
# Install CP2K
COPY --from=build_cp2k /opt/cp2k/install ./install
# Install CP2K regression tests
COPY ./tests ./tests
COPY --from=build_cp2k /opt/cp2k/src/grid/sample_tasks ./src/grid/sample_tasks
# Install CP2K/Quickstep CI benchmarks
COPY ./benchmarks/CI ./benchmarks/CI
# Do not rely only on LD_LIBRARY_PATH because it is fragile
COPY --from=build_cp2k /etc/ld.so.conf.d/cp2k.conf /etc/ld.so.conf.d/cp2k.conf
RUN ldconfig
# Run CP2K regression test
RUN /opt/cp2k/install/bin/launch /opt/cp2k/install/bin/run_tests --keepalive || echo "ERROR: Tests failed"
# Create entrypoint and finalise container build
WORKDIR /mnt
ENTRYPOINT ["/opt/cp2k/install/bin/launch"]
CMD ["cp2k", "--help", "--version"]