Docker: Generate dockerfiles for remaining CI tests

This commit is contained in:
Ole Schütt 2022-02-02 22:58:19 +01:00 committed by Ole Schütt
parent b639cfd4b8
commit 2e46d64db7
35 changed files with 1216 additions and 147 deletions

View file

@ -1,21 +1,78 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_aiida ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install test for aiida.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./scripts/install_aiida.sh .
COPY ./tools/docker/scripts/install_aiida.sh .
RUN ./install_aiida.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_aiida.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_aiida.sh ./
CMD ["./ci_entrypoint.sh", "./test_aiida.sh"]
#EOF

View file

@ -1,17 +1,78 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_ase ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install test for ase.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_ase.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_ase.sh .
RUN ./install_ase.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_ase.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_ase.sh ./
CMD ["./ci_entrypoint.sh", "./test_ase.sh"]
#EOF

View file

@ -1,17 +1,78 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_conventions ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install test for conventions.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_conventions.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_conventions.sh .
RUN ./install_conventions.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_conventions.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_conventions.sh ./
CMD ["./ci_entrypoint.sh", "./test_conventions.sh"]
#EOF

View file

@ -1,20 +1,77 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_coverage-pdbg ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install coverage test for pdbg.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_coverage.sh .
COPY ./tools/docker/scripts/install_coverage.sh .
RUN ./install_coverage.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local_coverage pdbg
COPY ./scripts/ci_entrypoint.sh ./scripts/test_coverage.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_coverage.sh ./
CMD ["./ci_entrypoint.sh", "./test_coverage.sh", "pdbg"]
#EOF

View file

@ -1,20 +1,77 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_coverage-sdbg ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install coverage test for sdbg.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_coverage.sh .
COPY ./tools/docker/scripts/install_coverage.sh .
RUN ./install_coverage.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local_coverage sdbg
COPY ./scripts/ci_entrypoint.sh ./scripts/test_coverage.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_coverage.sh ./
CMD ["./ci_entrypoint.sh", "./test_coverage.sh", "sdbg"]
#EOF

View file

@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -1,16 +1,24 @@
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_doxygen ../../
#
FROM ubuntu:20.04
# author: Ole Schuett
# Install test for doxygen.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_doxygen.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_doxygen.sh .
RUN ./install_doxygen.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_doxygen.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_doxygen.sh ./
CMD ["./ci_entrypoint.sh", "./test_doxygen.sh"]
#EOF

View file

@ -0,0 +1,74 @@
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_fedora-psmp ../../
#
FROM fedora:33
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh fedora:33
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for local.psmp.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local psmp
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "local", "psmp"]
#EOF

View file

@ -25,8 +25,8 @@ RUN ln -sf gcc-10 /usr/bin/gcc && \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -25,8 +25,8 @@ RUN ln -sf gcc-7 /usr/bin/gcc && \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -25,8 +25,8 @@ RUN ln -sf gcc-8 /usr/bin/gcc && \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -25,8 +25,8 @@ RUN ln -sf gcc-9 /usr/bin/gcc && \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -1,17 +1,78 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_gromacs ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install test for gromacs.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_gromacs.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_gromacs.sh .
RUN ./install_gromacs.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_gromacs.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_gromacs.sh ./
CMD ["./ci_entrypoint.sh", "./test_gromacs.sh"]
#EOF

View file

@ -96,8 +96,8 @@ RUN hipconfig
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -96,8 +96,8 @@ RUN hipconfig
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -96,8 +96,8 @@ RUN hipconfig
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -22,8 +22,8 @@ RUN hipconfig
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -22,8 +22,8 @@ RUN hipconfig
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -1,17 +1,78 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_i-pi ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install test for i-pi.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_i-pi.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_i-pi.sh .
RUN ./install_i-pi.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_i-pi.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_i-pi.sh ./
CMD ["./ci_entrypoint.sh", "./test_i-pi.sh"]
#EOF

View file

@ -25,8 +25,8 @@ RUN ln -sf gcc-10 /usr/bin/gcc && \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts

View file

@ -1,17 +1,78 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_manual ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install test for manual.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_manual.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_manual.sh .
RUN ./install_manual.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_manual.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_manual.sh ./
CMD ["./ci_entrypoint.sh", "./test_manual.sh"]
#EOF

View file

@ -1,17 +1,74 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_minimal ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for minimal.sdbg.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh minimal sdbg
COPY ./scripts/ci_entrypoint.sh ./scripts/test_regtest.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "minimal", "sdbg"]
#EOF

View file

@ -0,0 +1,74 @@
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_openmpi-psmp ../../
#
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=openmpi \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for local.psmp.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local psmp
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "local", "psmp"]
#EOF

View file

@ -1,18 +1,74 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_pdbg ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for local.pdbg.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local pdbg
ENV USE_STABLE_DBCSR=1
COPY ./scripts/ci_entrypoint.sh ./scripts/test_regtest.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "local", "pdbg"]
#EOF

View file

@ -1,19 +1,76 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_performance ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install performance test for local.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_performance.sh .
COPY ./tools/docker/scripts/install_performance.sh .
RUN ./install_performance.sh "local"
COPY ./scripts/ci_entrypoint.sh \
./scripts/test_performance.sh \
./scripts/plot_performance.py \
COPY ./tools/docker/scripts/ci_entrypoint.sh \
./tools/docker/scripts/test_performance.sh \
./tools/docker/scripts/plot_performance.py \
./
CMD ["./ci_entrypoint.sh", "./test_performance.sh", "local"]

View file

@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts
@ -71,7 +71,7 @@ COPY ./tools/toolchain/scripts/arch_base.tmpl \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install performance test for local_cuda
# Install performance test for local_cuda.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .

View file

@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts
@ -71,7 +71,7 @@ COPY ./tools/toolchain/scripts/arch_base.tmpl \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install performance test for local_cuda
# Install performance test for local_cuda.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .

View file

@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu
# Install the toolchain.
RUN mkdir scripts
@ -71,7 +71,7 @@ COPY ./tools/toolchain/scripts/arch_base.tmpl \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install performance test for local_cuda
# Install performance test for local_cuda.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .

View file

@ -1,17 +1,74 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_psmp ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for local.psmp.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local psmp
COPY ./scripts/ci_entrypoint.sh ./scripts/test_regtest.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "local", "psmp"]
#EOF

View file

@ -1,16 +1,24 @@
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_python ../../
#
FROM ubuntu:20.04
# author: Ole Schuett
# Install test for python.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_python.sh .
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_python.sh .
RUN ./install_python.sh
COPY ./scripts/ci_entrypoint.sh ./scripts/test_python.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_python.sh ./
CMD ["./ci_entrypoint.sh", "./test_python.sh"]
#EOF

View file

@ -1,17 +1,74 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_sdbg ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for local.sdbg.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local sdbg
COPY ./scripts/ci_entrypoint.sh ./scripts/test_regtest.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "local", "sdbg"]
#EOF

View file

@ -1,17 +1,74 @@
ARG TOOLCHAIN=cp2k/toolchain:latest
FROM ${TOOLCHAIN}
#
# This file was created by generate_dockerfiles.py.
# Usage: docker build -f ./Dockerfile.test_ssmp ../../
#
# author: Ole Schuett
FROM ubuntu:20.04
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh ubuntu:20.04
# Install the toolchain.
RUN mkdir scripts
COPY ./tools/toolchain/scripts/VERSION \
./tools/toolchain/scripts/parse_if.py \
./tools/toolchain/scripts/tool_kit.sh \
./tools/toolchain/scripts/common_vars.sh \
./tools/toolchain/scripts/signal_trap.sh \
./tools/toolchain/scripts/get_openblas_arch.sh \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
--install-all \
--mpi-mode=mpich \
--dry-run
# Dry-run leaves behind config files for the followup install scripts.
# This breaks up the lengthy installation into smaller docker build steps.
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
COPY ./tools/toolchain/scripts/arch_base.tmpl \
./tools/toolchain/scripts/generate_arch_files.sh \
./scripts/
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
# Install regression test for local.ssmp.
WORKDIR /workspace
COPY ./scripts/install_basics.sh .
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./scripts/install_regtest.sh .
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local ssmp
COPY ./scripts/ci_entrypoint.sh ./scripts/test_regtest.sh ./
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_regtest.sh ./
CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "local", "ssmp"]
#EOF

View file

@ -3,7 +3,7 @@
# author: Ole Schuett
from pathlib import Path
from typing import Any
from typing import Any, Optional
import argparse
import io
@ -13,6 +13,23 @@ def main() -> None:
parser.add_argument("--check", action="store_true")
args = parser.parse_args()
for version in "sdbg", "ssmp", "pdbg", "psmp":
with OutputFile(f"Dockerfile.test_{version}", args.check) as f:
f.write(toolchain_full() + regtest(version))
with OutputFile(f"Dockerfile.test_openmpi-psmp", args.check) as f:
f.write(toolchain_full(mpi_mode="openmpi") + regtest("psmp"))
with OutputFile(f"Dockerfile.test_fedora-psmp", args.check) as f:
f.write(toolchain_full(base_image="fedora:33") + regtest("psmp"))
with OutputFile(f"Dockerfile.test_minimal", args.check) as f:
f.write(toolchain_full() + regtest("sdbg", "minimal"))
for version in "sdbg", "pdbg":
with OutputFile(f"Dockerfile.test_coverage-{version}", args.check) as f:
f.write(toolchain_full() + coverage(version))
for gcc_version in 7, 8, 9, 10:
with OutputFile(f"Dockerfile.test_gcc{gcc_version}", args.check) as f:
f.write(toolchain_ubuntu_nompi(gcc_version=gcc_version) + regtest("ssmp"))
@ -20,6 +37,9 @@ def main() -> None:
with OutputFile("Dockerfile.test_i386", args.check) as f:
f.write(toolchain_ubuntu_nompi(base_image="i386/debian:11") + regtest("ssmp"))
with OutputFile(f"Dockerfile.test_performance", args.check) as f:
f.write(toolchain_full() + performance())
for gpu_ver in "P100", "V100", "A100":
with OutputFile(f"Dockerfile.test_cuda_{gpu_ver}", args.check) as f:
f.write(toolchain_cuda(gpu_ver=gpu_ver) + regtest("psmp", "local_cuda"))
@ -30,10 +50,41 @@ def main() -> None:
with OutputFile(f"Dockerfile.test_performance_cuda_{gpu_ver}", args.check) as f:
f.write(toolchain_cuda(gpu_ver=gpu_ver) + performance("local_cuda"))
for gpu_ver in ["Mi50", "Mi100"]:
for gpu_ver in "Mi50", "Mi100":
with OutputFile(f"Dockerfile.test_hip_rocm_{gpu_ver}", args.check) as f:
f.write(toolchain_hip_rocm(gpu_ver=gpu_ver) + regtest("psmp", "local_hip"))
for name in "aiida", "ase", "conventions", "gromacs", "i-pi", "manual":
with OutputFile(f"Dockerfile.test_{name}", args.check) as f:
f.write(toolchain_full() + generic_test(name))
for name in "doxygen", "python":
with OutputFile(f"Dockerfile.test_{name}", args.check) as f:
f.write("\nFROM ubuntu:20.04\n" + generic_test(name))
# ======================================================================================
def generic_test(name: str) -> str:
return fr"""
# Install test for {name}.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
# Some buggy Python packages open utf8 files in text mode.
# As workaround we set locale.getpreferredencoding() to utf8.
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"
COPY ./tools/docker/scripts/install_{name}.sh .
RUN ./install_{name}.sh
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_{name}.sh ./
CMD ["./ci_entrypoint.sh", "./test_{name}.sh"]
#EOF
"""
# ======================================================================================
def regtest(version: str, arch: str = "local") -> str:
@ -55,9 +106,9 @@ CMD ["./ci_entrypoint.sh", "./test_regtest.sh", "{arch}", "{version}"]
# ======================================================================================
def performance(arch: str) -> str:
def performance(arch: str = "local") -> str:
return fr"""
# Install performance test for {arch}
# Install performance test for {arch}.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .
@ -77,6 +128,35 @@ CMD ["./ci_entrypoint.sh", "./test_performance.sh", "{arch}"]
"""
# ======================================================================================
def coverage(version: str) -> str:
return fr"""
# Install coverage test for {version}.
WORKDIR /workspace
COPY ./tools/docker/scripts/install_basics.sh .
RUN ./install_basics.sh
COPY ./tools/docker/scripts/install_coverage.sh .
RUN ./install_coverage.sh
COPY ./tools/docker/scripts/install_regtest.sh .
RUN ./install_regtest.sh local_coverage {version}
COPY ./tools/docker/scripts/ci_entrypoint.sh ./tools/docker/scripts/test_coverage.sh ./
CMD ["./ci_entrypoint.sh", "./test_coverage.sh", "{version}"]
#EOF
"""
# ======================================================================================
def toolchain_full(base_image: str = "ubuntu:20.04", mpi_mode: str = "mpich") -> str:
return f"\nFROM {base_image}\n\n" + install_toolchain(
base_image=base_image, install_all=None, mpi_mode=mpi_mode
)
# ======================================================================================
def toolchain_ubuntu_nompi(
base_image: str = "ubuntu:20.04", gcc_version: int = 10
@ -103,6 +183,7 @@ RUN ln -sf gcc-{gcc_version} /usr/bin/gcc && \
ln -sf gfortran-{gcc_version} /usr/bin/gfortran
""" + install_toolchain(
base_image="ubuntu",
mpi_mode="no",
with_gcc="system",
with_cmake="system",
@ -133,7 +214,7 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
""" + install_toolchain(
mpi_mode="mpich", enable_cuda="yes", gpu_ver=gpu_ver
base_image="ubuntu", mpi_mode="mpich", enable_cuda="yes", gpu_ver=gpu_ver
)
@ -232,7 +313,7 @@ ENV HIP_PLATFORM nvidia
RUN hipconfig
""" + install_toolchain(
mpi_mode="mpich", enable_hip="yes", gpu_ver=gpu_ver
base_image="ubuntu", mpi_mode="mpich", enable_hip="yes", gpu_ver=gpu_ver
)
@ -257,19 +338,26 @@ ENV HIP_PLATFORM amd
RUN hipconfig
""" + install_toolchain(
mpi_mode="mpich", enable_hip="yes", gpu_ver=gpu_ver
base_image="ubuntu", mpi_mode="mpich", enable_hip="yes", gpu_ver=gpu_ver
)
# ======================================================================================
def install_toolchain(**kwargs: str) -> str:
kwargs_underscore = {k.replace("_", "-"): v for k, v in kwargs.items()}
install_args = "\n".join(f" --{k}={v} \\" for k, v in kwargs_underscore.items())
def install_toolchain(base_image: str, **kwargs: Optional[str]) -> str:
install_args = []
for k, v in kwargs.items():
k = k.replace("_", "-")
if v is not None:
install_args.append(f" --{k}={v} \\")
else:
install_args.append(f" --{k} \\")
install_args_str = "\n".join(install_args)
return fr"""
# Install requirements for the toolchain.
WORKDIR /opt/cp2k-toolchain
COPY ./tools/toolchain/install_requirements_ubuntu.sh .
RUN ./install_requirements_ubuntu.sh
COPY ./tools/toolchain/install_requirements*.sh ./
RUN ./install_requirements.sh {base_image}
# Install the toolchain.
RUN mkdir scripts
@ -282,7 +370,7 @@ COPY ./tools/toolchain/scripts/VERSION \
./scripts/
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
RUN ./install_cp2k_toolchain.sh \
{install_args}
{install_args_str}
--dry-run
# Dry-run leaves behind config files for the followup install scripts.