From fd9656a0f5f240a1345493734e67732b9411c287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Sch=C3=BCtt?= Date: Wed, 11 May 2022 10:10:44 +0200 Subject: [PATCH] Docker: Upgrade to Ubuntu 22.04 --- tools/docker/Dockerfile.prod_generic_pdbg | 4 +- tools/docker/Dockerfile.prod_generic_psmp | 4 +- tools/docker/Dockerfile.prod_generic_sdbg | 4 +- tools/docker/Dockerfile.prod_generic_ssmp | 4 +- tools/docker/Dockerfile.prod_pdbg | 4 +- tools/docker/Dockerfile.prod_psmp | 4 +- tools/docker/Dockerfile.prod_sdbg | 4 +- tools/docker/Dockerfile.prod_ssmp | 4 +- tools/docker/Dockerfile.test_aiida | 4 +- tools/docker/Dockerfile.test_ase | 4 +- tools/docker/Dockerfile.test_conventions | 4 +- tools/docker/Dockerfile.test_coverage-pdbg | 4 +- tools/docker/Dockerfile.test_coverage-sdbg | 4 +- tools/docker/Dockerfile.test_doxygen | 2 +- tools/docker/Dockerfile.test_gcc10 | 2 +- tools/docker/Dockerfile.test_gcc11 | 116 +++++++++++++++++++++ tools/docker/Dockerfile.test_gcc12 | 116 +++++++++++++++++++++ tools/docker/Dockerfile.test_gcc9 | 2 +- tools/docker/Dockerfile.test_generic_pdbg | 4 +- tools/docker/Dockerfile.test_generic_psmp | 4 +- tools/docker/Dockerfile.test_generic_sdbg | 4 +- tools/docker/Dockerfile.test_generic_ssmp | 4 +- tools/docker/Dockerfile.test_gromacs | 4 +- tools/docker/Dockerfile.test_i-pi | 4 +- tools/docker/Dockerfile.test_manual | 4 +- tools/docker/Dockerfile.test_minimal | 4 +- tools/docker/Dockerfile.test_openmpi-psmp | 4 +- tools/docker/Dockerfile.test_pdbg | 4 +- tools/docker/Dockerfile.test_performance | 4 +- tools/docker/Dockerfile.test_precommit | 2 +- tools/docker/Dockerfile.test_psmp | 4 +- tools/docker/Dockerfile.test_python | 2 +- tools/docker/Dockerfile.test_sdbg | 4 +- tools/docker/Dockerfile.test_ssmp | 4 +- tools/docker/generate_dockerfiles.py | 26 +++-- 35 files changed, 303 insertions(+), 73 deletions(-) create mode 100644 tools/docker/Dockerfile.test_gcc11 create mode 100644 tools/docker/Dockerfile.test_gcc12 diff --git a/tools/docker/Dockerfile.prod_generic_pdbg b/tools/docker/Dockerfile.prod_generic_pdbg index 595f08d29c..be0d9776e4 100644 --- a/tools/docker/Dockerfile.prod_generic_pdbg +++ b/tools/docker/Dockerfile.prod_generic_pdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_generic_pdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_generic_psmp b/tools/docker/Dockerfile.prod_generic_psmp index 101d36591b..30c145d3e2 100644 --- a/tools/docker/Dockerfile.prod_generic_psmp +++ b/tools/docker/Dockerfile.prod_generic_psmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_generic_psmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_generic_sdbg b/tools/docker/Dockerfile.prod_generic_sdbg index 671d040d92..2a90264424 100644 --- a/tools/docker/Dockerfile.prod_generic_sdbg +++ b/tools/docker/Dockerfile.prod_generic_sdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_generic_sdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_generic_ssmp b/tools/docker/Dockerfile.prod_generic_ssmp index 1d1fdefcff..dc201b0023 100644 --- a/tools/docker/Dockerfile.prod_generic_ssmp +++ b/tools/docker/Dockerfile.prod_generic_ssmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_generic_ssmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_pdbg b/tools/docker/Dockerfile.prod_pdbg index 542657e4d1..78426d42ca 100644 --- a/tools/docker/Dockerfile.prod_pdbg +++ b/tools/docker/Dockerfile.prod_pdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_pdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_psmp b/tools/docker/Dockerfile.prod_psmp index b68992691d..10cb499d4e 100644 --- a/tools/docker/Dockerfile.prod_psmp +++ b/tools/docker/Dockerfile.prod_psmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_psmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_sdbg b/tools/docker/Dockerfile.prod_sdbg index 82fb7ef421..d899bd241e 100644 --- a/tools/docker/Dockerfile.prod_sdbg +++ b/tools/docker/Dockerfile.prod_sdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_sdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.prod_ssmp b/tools/docker/Dockerfile.prod_ssmp index 7c12422fa6..368c190551 100644 --- a/tools/docker/Dockerfile.prod_ssmp +++ b/tools/docker/Dockerfile.prod_ssmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.prod_ssmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_aiida b/tools/docker/Dockerfile.test_aiida index d9bd248265..986c118432 100644 --- a/tools/docker/Dockerfile.test_aiida +++ b/tools/docker/Dockerfile.test_aiida @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_aiida ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_ase b/tools/docker/Dockerfile.test_ase index c289de5649..c13d76bd16 100644 --- a/tools/docker/Dockerfile.test_ase +++ b/tools/docker/Dockerfile.test_ase @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_ase ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_conventions b/tools/docker/Dockerfile.test_conventions index 649056fdce..6ca26596ce 100644 --- a/tools/docker/Dockerfile.test_conventions +++ b/tools/docker/Dockerfile.test_conventions @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_conventions ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_coverage-pdbg b/tools/docker/Dockerfile.test_coverage-pdbg index 85024ab0e1..15b479b5fc 100644 --- a/tools/docker/Dockerfile.test_coverage-pdbg +++ b/tools/docker/Dockerfile.test_coverage-pdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_coverage-pdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_coverage-sdbg b/tools/docker/Dockerfile.test_coverage-sdbg index 784783381d..4dbbd04c38 100644 --- a/tools/docker/Dockerfile.test_coverage-sdbg +++ b/tools/docker/Dockerfile.test_coverage-sdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_coverage-sdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_doxygen b/tools/docker/Dockerfile.test_doxygen index 99fb101bbd..1e3545f5d3 100644 --- a/tools/docker/Dockerfile.test_doxygen +++ b/tools/docker/Dockerfile.test_doxygen @@ -3,7 +3,7 @@ # Usage: docker build -f ./Dockerfile.test_doxygen ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install dependencies. WORKDIR /opt/cp2k diff --git a/tools/docker/Dockerfile.test_gcc10 b/tools/docker/Dockerfile.test_gcc10 index bc8877b432..023488f7f6 100644 --- a/tools/docker/Dockerfile.test_gcc10 +++ b/tools/docker/Dockerfile.test_gcc10 @@ -3,7 +3,7 @@ # Usage: docker build -f ./Dockerfile.test_gcc10 ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install Ubuntu packages. RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \ diff --git a/tools/docker/Dockerfile.test_gcc11 b/tools/docker/Dockerfile.test_gcc11 new file mode 100644 index 0000000000..eb3477d6a3 --- /dev/null +++ b/tools/docker/Dockerfile.test_gcc11 @@ -0,0 +1,116 @@ +# +# This file was created by generate_dockerfiles.py. +# Usage: docker build -f ./Dockerfile.test_gcc11 ../../ +# + +FROM ubuntu:22.04 + +# Install Ubuntu packages. +RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \ + apt-get update -qq && apt-get install -qq --no-install-recommends \ + cmake \ + gcc-11 \ + g++-11 \ + gfortran-11 \ + fftw3-dev \ + libopenblas-dev \ + libgsl-dev \ + libhdf5-dev \ + && rm -rf /var/lib/apt/lists/* + +# Create links in /usr/local/bin to overrule links in /usr/bin. +RUN ln -sf /usr/bin/gcc-11 /usr/local/bin/gcc && \ + ln -sf /usr/bin/g++-11 /usr/local/bin/g++ && \ + ln -sf /usr/bin/gfortran-11 /usr/local/bin/gfortran + +# Install requirements for the toolchain. +WORKDIR /opt/cp2k-toolchain +COPY ./tools/toolchain/install_requirements*.sh ./ +RUN ./install_requirements.sh ubuntu + +# 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 \ + --mpi-mode=no \ + --with-gcc=system \ + --with-cmake=system \ + --with-fftw=system \ + --with-openblas=system \ + --with-gsl=system \ + --with-hdf5=system \ + --with-libxc=install \ + --with-libxsmm=install \ + --with-libint=install \ + --with-libvori=install \ + --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 CP2K using local.ssmp. +WORKDIR /opt/cp2k +COPY ./Makefile . +COPY ./src ./src +COPY ./exts ./exts +COPY ./tools/build_utils ./tools/build_utils +RUN /bin/bash -c " \ + mkdir -p arch && \ + ln -vs /opt/cp2k-toolchain/install/arch/local.ssmp ./arch/ && \ + echo 'Compiling cp2k...' && \ + source /opt/cp2k-toolchain/install/setup && \ + ( make -j ARCH=local VERSION=ssmp &> /dev/null || true )" +COPY ./data ./data +COPY ./tests ./tests +COPY ./tools/regtesting ./tools/regtesting + +# Run regression tests. +ARG TESTOPTS="" +COPY ./tools/docker/scripts/test_regtest.sh ./ +RUN /bin/bash -c " \ + TESTOPTS="${TESTOPTS}" \ + ./test_regtest.sh 'local' 'ssmp' |& tee report.log && \ + rm -rf regtesting" + +# Output the report if the image is old and was therefore pulled from the build cache. +CMD cat $(find ./report.log -mmin +10) | sed '/^Summary:/ s/$/ (cached)/' + +#EOF diff --git a/tools/docker/Dockerfile.test_gcc12 b/tools/docker/Dockerfile.test_gcc12 new file mode 100644 index 0000000000..b76afe5641 --- /dev/null +++ b/tools/docker/Dockerfile.test_gcc12 @@ -0,0 +1,116 @@ +# +# This file was created by generate_dockerfiles.py. +# Usage: docker build -f ./Dockerfile.test_gcc12 ../../ +# + +FROM ubuntu:22.04 + +# Install Ubuntu packages. +RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \ + apt-get update -qq && apt-get install -qq --no-install-recommends \ + cmake \ + gcc-12 \ + g++-12 \ + gfortran-12 \ + fftw3-dev \ + libopenblas-dev \ + libgsl-dev \ + libhdf5-dev \ + && rm -rf /var/lib/apt/lists/* + +# Create links in /usr/local/bin to overrule links in /usr/bin. +RUN ln -sf /usr/bin/gcc-12 /usr/local/bin/gcc && \ + ln -sf /usr/bin/g++-12 /usr/local/bin/g++ && \ + ln -sf /usr/bin/gfortran-12 /usr/local/bin/gfortran + +# Install requirements for the toolchain. +WORKDIR /opt/cp2k-toolchain +COPY ./tools/toolchain/install_requirements*.sh ./ +RUN ./install_requirements.sh ubuntu + +# 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 \ + --mpi-mode=no \ + --with-gcc=system \ + --with-cmake=system \ + --with-fftw=system \ + --with-openblas=system \ + --with-gsl=system \ + --with-hdf5=system \ + --with-libxc=install \ + --with-libxsmm=install \ + --with-libint=install \ + --with-libvori=install \ + --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 CP2K using local.ssmp. +WORKDIR /opt/cp2k +COPY ./Makefile . +COPY ./src ./src +COPY ./exts ./exts +COPY ./tools/build_utils ./tools/build_utils +RUN /bin/bash -c " \ + mkdir -p arch && \ + ln -vs /opt/cp2k-toolchain/install/arch/local.ssmp ./arch/ && \ + echo 'Compiling cp2k...' && \ + source /opt/cp2k-toolchain/install/setup && \ + ( make -j ARCH=local VERSION=ssmp &> /dev/null || true )" +COPY ./data ./data +COPY ./tests ./tests +COPY ./tools/regtesting ./tools/regtesting + +# Run regression tests. +ARG TESTOPTS="" +COPY ./tools/docker/scripts/test_regtest.sh ./ +RUN /bin/bash -c " \ + TESTOPTS="${TESTOPTS}" \ + ./test_regtest.sh 'local' 'ssmp' |& tee report.log && \ + rm -rf regtesting" + +# Output the report if the image is old and was therefore pulled from the build cache. +CMD cat $(find ./report.log -mmin +10) | sed '/^Summary:/ s/$/ (cached)/' + +#EOF diff --git a/tools/docker/Dockerfile.test_gcc9 b/tools/docker/Dockerfile.test_gcc9 index c70b57f53f..b8bb7e7ed3 100644 --- a/tools/docker/Dockerfile.test_gcc9 +++ b/tools/docker/Dockerfile.test_gcc9 @@ -3,7 +3,7 @@ # Usage: docker build -f ./Dockerfile.test_gcc9 ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install Ubuntu packages. RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \ diff --git a/tools/docker/Dockerfile.test_generic_pdbg b/tools/docker/Dockerfile.test_generic_pdbg index e9c08ba6c2..0e96e03c4e 100644 --- a/tools/docker/Dockerfile.test_generic_pdbg +++ b/tools/docker/Dockerfile.test_generic_pdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_generic_pdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_generic_psmp b/tools/docker/Dockerfile.test_generic_psmp index 920e52ae66..455af047f8 100644 --- a/tools/docker/Dockerfile.test_generic_psmp +++ b/tools/docker/Dockerfile.test_generic_psmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_generic_psmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_generic_sdbg b/tools/docker/Dockerfile.test_generic_sdbg index 4217257162..3e97522ced 100644 --- a/tools/docker/Dockerfile.test_generic_sdbg +++ b/tools/docker/Dockerfile.test_generic_sdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_generic_sdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_generic_ssmp b/tools/docker/Dockerfile.test_generic_ssmp index 22a3331a5c..2bdcf4e5e7 100644 --- a/tools/docker/Dockerfile.test_generic_ssmp +++ b/tools/docker/Dockerfile.test_generic_ssmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_generic_ssmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_gromacs b/tools/docker/Dockerfile.test_gromacs index ecfbadb1f9..70790cca83 100644 --- a/tools/docker/Dockerfile.test_gromacs +++ b/tools/docker/Dockerfile.test_gromacs @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_gromacs ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_i-pi b/tools/docker/Dockerfile.test_i-pi index dfa85010fc..e2fbf9852f 100644 --- a/tools/docker/Dockerfile.test_i-pi +++ b/tools/docker/Dockerfile.test_i-pi @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_i-pi ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_manual b/tools/docker/Dockerfile.test_manual index 684efdaa7e..9ca0c380e6 100644 --- a/tools/docker/Dockerfile.test_manual +++ b/tools/docker/Dockerfile.test_manual @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_manual ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_minimal b/tools/docker/Dockerfile.test_minimal index 5d8368c91c..69f2252d68 100644 --- a/tools/docker/Dockerfile.test_minimal +++ b/tools/docker/Dockerfile.test_minimal @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_minimal ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_openmpi-psmp b/tools/docker/Dockerfile.test_openmpi-psmp index eb3ca65728..3c7bf11fb9 100644 --- a/tools/docker/Dockerfile.test_openmpi-psmp +++ b/tools/docker/Dockerfile.test_openmpi-psmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_openmpi-psmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_pdbg b/tools/docker/Dockerfile.test_pdbg index 48005113a5..2c00b23d20 100644 --- a/tools/docker/Dockerfile.test_pdbg +++ b/tools/docker/Dockerfile.test_pdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_pdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_performance b/tools/docker/Dockerfile.test_performance index e864b9f941..da87e648cc 100644 --- a/tools/docker/Dockerfile.test_performance +++ b/tools/docker/Dockerfile.test_performance @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_performance ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_precommit b/tools/docker/Dockerfile.test_precommit index 5528c4314a..efbd4107f0 100644 --- a/tools/docker/Dockerfile.test_precommit +++ b/tools/docker/Dockerfile.test_precommit @@ -3,7 +3,7 @@ # Usage: docker build -f ./Dockerfile.test_precommit ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install dependencies. WORKDIR /opt/cp2k-precommit diff --git a/tools/docker/Dockerfile.test_psmp b/tools/docker/Dockerfile.test_psmp index 97fec9228b..0b8c5ab1f4 100644 --- a/tools/docker/Dockerfile.test_psmp +++ b/tools/docker/Dockerfile.test_psmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_psmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_python b/tools/docker/Dockerfile.test_python index a2e72df1e8..16a560c2eb 100644 --- a/tools/docker/Dockerfile.test_python +++ b/tools/docker/Dockerfile.test_python @@ -3,7 +3,7 @@ # Usage: docker build -f ./Dockerfile.test_python ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install dependencies. WORKDIR /opt/cp2k diff --git a/tools/docker/Dockerfile.test_sdbg b/tools/docker/Dockerfile.test_sdbg index 88589faab3..64f6e630f1 100644 --- a/tools/docker/Dockerfile.test_sdbg +++ b/tools/docker/Dockerfile.test_sdbg @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_sdbg ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/Dockerfile.test_ssmp b/tools/docker/Dockerfile.test_ssmp index 4f53e3c395..49b248c8a3 100644 --- a/tools/docker/Dockerfile.test_ssmp +++ b/tools/docker/Dockerfile.test_ssmp @@ -3,12 +3,12 @@ # Usage: docker build -f ./Dockerfile.test_ssmp ../../ # -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install requirements for the toolchain. WORKDIR /opt/cp2k-toolchain COPY ./tools/toolchain/install_requirements*.sh ./ -RUN ./install_requirements.sh ubuntu:20.04 +RUN ./install_requirements.sh ubuntu:22.04 # Install the toolchain. RUN mkdir scripts diff --git a/tools/docker/generate_dockerfiles.py b/tools/docker/generate_dockerfiles.py index 8fb294e47a..b493eba156 100755 --- a/tools/docker/generate_dockerfiles.py +++ b/tools/docker/generate_dockerfiles.py @@ -42,15 +42,15 @@ def main() -> None: 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: + for gcc_version in 7, 8, 9, 10, 11, 12: with OutputFile(f"Dockerfile.test_gcc{gcc_version}", args.check) as f: - f.write(toolchain_ubuntu_nompi(gcc_version=gcc_version) + regtest("ssmp")) + img = "ubuntu:22.04" if gcc_version > 8 else "ubuntu:20.04" + f.write(toolchain_ubuntu_nompi(base_image=img, gcc_version=gcc_version)) + f.write(regtest("ssmp")) with OutputFile("Dockerfile.test_i386", args.check) as f: - f.write( - toolchain_ubuntu_nompi(base_image="i386/debian:11", libvori=False) - + regtest("ssmp") - ) + f.write(toolchain_ubuntu_nompi(base_image="i386/debian:11", libvori=False)) + f.write(regtest("ssmp")) with OutputFile(f"Dockerfile.test_performance", args.check) as f: f.write(toolchain_full() + performance()) @@ -72,10 +72,8 @@ def main() -> None: with OutputFile(f"Dockerfile.test_hip_rocm_{gpu_ver}", args.check) as f: # ROCm containers require --device, which is not available for docker build. # https://rocmdocs.amd.com/en/latest/ROCm_Virtualization_Containers/ROCm-Virtualization-&-Containers.html#docker-hub - f.write( - toolchain_hip_rocm(gpu_ver=gpu_ver) - + regtest_postponed("psmp", "local_hip") - ) + f.write(toolchain_hip_rocm(gpu_ver=gpu_ver)) + f.write(regtest_postponed("psmp", "local_hip")) with OutputFile(f"Dockerfile.build_hip_rocm_{gpu_ver}", args.check) as f: f.write(toolchain_hip_rocm(gpu_ver=gpu_ver) + build("psmp", "local_hip")) @@ -209,7 +207,7 @@ RUN ./test_manual.sh 2>&1 | tee report.log def precommit() -> str: return ( fr""" -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install dependencies. WORKDIR /opt/cp2k-precommit @@ -244,7 +242,7 @@ RUN ./test_{name}.sh 2>&1 | tee report.log def test_without_build(name: str) -> str: return ( fr""" -FROM ubuntu:20.04 +FROM ubuntu:22.04 # Install dependencies. WORKDIR /opt/cp2k @@ -356,7 +354,7 @@ COPY ./tools/regtesting ./tools/regtesting # ====================================================================================== def toolchain_full( - base_image: str = "ubuntu:20.04", + base_image: str = "ubuntu:22.04", mpi_mode: str = "mpich", gcc: str = "system", generic: bool = False, @@ -369,7 +367,7 @@ def toolchain_full( # ====================================================================================== def toolchain_ubuntu_nompi( - base_image: str = "ubuntu:20.04", gcc_version: int = 10, libvori: bool = True, + base_image: str = "ubuntu:22.04", gcc_version: int = 10, libvori: bool = True, ) -> str: return fr""" FROM {base_image}