From f961a11187a514dab4fb4a615544d480ab6b39c2 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Fri, 22 Apr 2022 08:51:26 +0200 Subject: Update Dockerfiles and images for Spack v0.18.0 (#30216) This PR updates the list of images we build nightly, deprecating Ubuntu 16.04 and CentOS 8 and adding Ubuntu 20.04, Ubuntu 22.04 and CentOS Stream. It also removes a lot of duplication by generating the Dockerfiles during the CI workflow and uploading them as artifacts for later inspection or reuse. --- share/spack/docker/amazonlinux-2.dockerfile | 69 -------------------- share/spack/docker/centos-7.dockerfile | 73 ---------------------- share/spack/docker/leap-15.dockerfile | 72 --------------------- share/spack/docker/modules.yaml | 8 +-- share/spack/docker/ubuntu-1604.dockerfile | 73 ---------------------- share/spack/docker/ubuntu-1804.dockerfile | 73 ---------------------- .../templates/container/amazonlinux_2.dockerfile | 8 +-- .../spack/templates/container/centos_7.dockerfile | 8 +-- .../spack/templates/container/centos_8.dockerfile | 29 --------- .../templates/container/centos_stream.dockerfile | 29 +++++++++ .../templates/container/ubuntu_1604.dockerfile | 32 ---------- .../templates/container/ubuntu_1804.dockerfile | 7 +-- .../templates/container/ubuntu_2004.dockerfile | 33 +++++++++- .../templates/container/ubuntu_2204.dockerfile | 1 + 14 files changed, 75 insertions(+), 440 deletions(-) delete mode 100644 share/spack/docker/amazonlinux-2.dockerfile delete mode 100644 share/spack/docker/centos-7.dockerfile delete mode 100644 share/spack/docker/leap-15.dockerfile delete mode 100644 share/spack/docker/ubuntu-1604.dockerfile delete mode 100644 share/spack/docker/ubuntu-1804.dockerfile delete mode 100644 share/spack/templates/container/centos_8.dockerfile create mode 100644 share/spack/templates/container/centos_stream.dockerfile delete mode 100644 share/spack/templates/container/ubuntu_1604.dockerfile mode change 100644 => 120000 share/spack/templates/container/ubuntu_1804.dockerfile mode change 120000 => 100644 share/spack/templates/container/ubuntu_2004.dockerfile create mode 120000 share/spack/templates/container/ubuntu_2204.dockerfile (limited to 'share') diff --git a/share/spack/docker/amazonlinux-2.dockerfile b/share/spack/docker/amazonlinux-2.dockerfile deleted file mode 100644 index 93d67d9c4d..0000000000 --- a/share/spack/docker/amazonlinux-2.dockerfile +++ /dev/null @@ -1,69 +0,0 @@ -FROM public.ecr.aws/amazonlinux/amazonlinux:2.0.20201111.0 -MAINTAINER Spack Maintainers - -ENV DOCKERFILE_BASE=centos \ - DOCKERFILE_DISTRO=centos \ - DOCKERFILE_DISTRO_VERSION=7 \ - SPACK_ROOT=/opt/spack \ - DEBIAN_FRONTEND=noninteractive \ - CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ - container=docker - -RUN yum update -y \ - && yum groupinstall -y "Development Tools" \ - && yum install -y \ - curl \ - findutils \ - gcc-c++ \ - gcc \ - gcc-gfortran \ - git \ - gnupg2 \ - hostname \ - iproute \ - make \ - patch \ - python3 \ - python3-pip \ - python3-setuptools \ - tcl \ - unzip \ - which \ - && pip3 install boto3 \ - && rm -rf /var/cache/yum \ - && yum clean all - -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - -RUN mkdir -p /root/.spack \ - && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ - /root/.spack/modules.yaml \ - && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git - -# [WORKAROUND] -# https://superuser.com/questions/1241548/ -# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889 -RUN [ -f ~/.profile ] \ - && sed -i 's/mesg n/( tty -s \\&\\& mesg n || true )/g' ~/.profile \ - || true - -WORKDIR /root -SHELL ["docker-shell"] - -# TODO: add a command to Spack that (re)creates the package cache -RUN spack spec hdf5+mpi - -ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] -CMD ["interactive-shell"] diff --git a/share/spack/docker/centos-7.dockerfile b/share/spack/docker/centos-7.dockerfile deleted file mode 100644 index a8c6d64a2c..0000000000 --- a/share/spack/docker/centos-7.dockerfile +++ /dev/null @@ -1,73 +0,0 @@ -FROM centos:7 -MAINTAINER Spack Maintainers - -ENV DOCKERFILE_BASE=centos \ - DOCKERFILE_DISTRO=centos \ - DOCKERFILE_DISTRO_VERSION=7 \ - SPACK_ROOT=/opt/spack \ - DEBIAN_FRONTEND=noninteractive \ - CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ - container=docker - -RUN yum update -y \ - && yum install -y epel-release \ - && yum update -y \ - && yum --enablerepo epel groupinstall -y "Development Tools" \ - && yum --enablerepo epel install -y \ - curl \ - findutils \ - gcc-c++ \ - gcc \ - gcc-gfortran \ - git \ - gnupg2 \ - hostname \ - iproute \ - make \ - patch \ - patchelf \ - python3 \ - python3-pip \ - python3-setuptools \ - tcl \ - unzip \ - which \ - && pip3 install boto3 \ - && rm -rf /var/cache/yum \ - && yum clean all - -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - -RUN mkdir -p /root/.spack \ - && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ - /root/.spack/modules.yaml \ - && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git - -# [WORKAROUND] -# https://superuser.com/questions/1241548/ -# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889 -RUN [ -f ~/.profile ] \ - && sed -i 's/mesg n/( tty -s \\&\\& mesg n || true )/g' ~/.profile \ - || true - -WORKDIR /root -SHELL ["docker-shell"] - -# TODO: add a command to Spack that (re)creates the package cache -RUN spack bootstrap untrust spack-install -RUN spack spec hdf5+mpi - -ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] -CMD ["interactive-shell"] diff --git a/share/spack/docker/leap-15.dockerfile b/share/spack/docker/leap-15.dockerfile deleted file mode 100644 index 1bf41c6149..0000000000 --- a/share/spack/docker/leap-15.dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM opensuse/leap:15.3 -MAINTAINER Christian Goll - -ENV DOCKERFILE_BASE=opensuse \ - DOCKERFILE_DISTRO=leap \ - DOCKERFILE_DISTRO_VERSION=15.3 \ - SPACK_ROOT=/opt/spack \ - DEBIAN_FRONTEND=noninteractive \ - CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ - container=docker - -RUN zypper ref && \ - zypper up -y && \ - zypper in -y \ - bzip2\ - curl\ - file\ - gcc-c++\ - gcc-fortran\ - make\ - gzip\ - patch\ - patchelf\ - python3-base \ - python3-boto3\ - tar\ - xz\ -&& zypper clean - -# clean up manpages -RUN rm -rf /var/cache/zypp/* \ - rm -rf /usr/share/doc/packages/* \ - rm -rf /usr/share/doc/manual/* - -# copy spack into container -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - -RUN mkdir -p /root/.spack \ - && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ - /root/.spack/modules.yaml \ - && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git - -# [WORKAROUND] -# https://superuser.com/questions/1241548/ -# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889 -RUN [ -f ~/.profile ] \ - && sed -i 's/mesg n/( tty -s \\&\\& mesg n || true )/g' ~/.profile \ - || true - -WORKDIR /root -SHELL ["docker-shell"] - -# Disable bootstrapping from sources -RUN ${SPACK_ROOT}/bin/spack bootstrap untrust spack-install - -# TODO: add a command to Spack that (re)creates the package cache -RUN ${SPACK_ROOT}/bin/spack spec hdf5+mpi - -ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] -CMD ["interactive-shell"] diff --git a/share/spack/docker/modules.yaml b/share/spack/docker/modules.yaml index 02907ecc40..a620b3178f 100644 --- a/share/spack/docker/modules.yaml +++ b/share/spack/docker/modules.yaml @@ -1,6 +1,6 @@ modules: - enable: - - lmod - lmod: - core_compilers: + default: + enable: [] + lmod: + core_compilers: - gcc diff --git a/share/spack/docker/ubuntu-1604.dockerfile b/share/spack/docker/ubuntu-1604.dockerfile deleted file mode 100644 index f5662408ee..0000000000 --- a/share/spack/docker/ubuntu-1604.dockerfile +++ /dev/null @@ -1,73 +0,0 @@ -FROM ubuntu:16.04 -MAINTAINER Spack Maintainers - -ENV DOCKERFILE_BASE=ubuntu:16.04 \ - DOCKERFILE_DISTRO=ubuntu \ - DOCKERFILE_DISTRO_VERSION=16.04 \ - SPACK_ROOT=/opt/spack \ - DEBIAN_FRONTEND=noninteractive \ - CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ - container=docker - -RUN apt-get -yqq update \ - && apt-get -yqq install --no-install-recommends \ - build-essential \ - ca-certificates \ - curl \ - file \ - g++ \ - gcc \ - gfortran \ - git \ - gnupg2 \ - iproute2 \ - locales \ - make \ - python3 \ - python3-pip \ - python3-setuptools \ - tcl \ - unzip \ - && locale-gen en_US.UTF-8 \ - && pip3 install boto3 \ - && rm -rf /var/lib/apt/lists/* - -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - -# Add LANG default to en_US.UTF-8 -ENV LANGUAGE en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LC_ALL en_US.UTF-8 - -RUN mkdir -p /root/.spack \ - && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ - /root/.spack/modules.yaml \ - && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git - -# [WORKAROUND] -# https://superuser.com/questions/1241548/ -# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889 -RUN [ -f ~/.profile ] \ - && sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile \ - || true - -WORKDIR /root -SHELL ["docker-shell"] - -# TODO: add a command to Spack that (re)creates the package cache -RUN spack spec hdf5+mpi - -ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] -CMD ["interactive-shell"] diff --git a/share/spack/docker/ubuntu-1804.dockerfile b/share/spack/docker/ubuntu-1804.dockerfile deleted file mode 100644 index d491174e97..0000000000 --- a/share/spack/docker/ubuntu-1804.dockerfile +++ /dev/null @@ -1,73 +0,0 @@ -FROM ubuntu:18.04 -MAINTAINER Spack Maintainers - -ENV DOCKERFILE_BASE=ubuntu \ - DOCKERFILE_DISTRO=ubuntu \ - DOCKERFILE_DISTRO_VERSION=18.04 \ - SPACK_ROOT=/opt/spack \ - DEBIAN_FRONTEND=noninteractive \ - CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ - container=docker - -RUN apt-get -yqq update \ - && apt-get -yqq install --no-install-recommends \ - build-essential \ - ca-certificates \ - curl \ - file \ - g++ \ - gcc \ - gfortran \ - git \ - gnupg2 \ - iproute2 \ - locales \ - make \ - python3 \ - python3-pip \ - python3-setuptools \ - tcl \ - unzip \ - && locale-gen en_US.UTF-8 \ - && pip3 install boto3 \ - && rm -rf /var/lib/apt/lists/* - -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - -# Add LANG default to en_US.UTF-8 -ENV LANGUAGE en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LC_ALL en_US.UTF-8 - -RUN mkdir -p /root/.spack \ - && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ - /root/.spack/modules.yaml \ - && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git - -# [WORKAROUND] -# https://superuser.com/questions/1241548/ -# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889 -RUN [ -f ~/.profile ] \ - && sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile \ - || true - -WORKDIR /root -SHELL ["docker-shell"] - -# TODO: add a command to Spack that (re)creates the package cache -RUN spack spec hdf5+mpi - -ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] -CMD ["interactive-shell"] diff --git a/share/spack/templates/container/amazonlinux_2.dockerfile b/share/spack/templates/container/amazonlinux_2.dockerfile index 5ab05562c0..c5b69e317d 100644 --- a/share/spack/templates/container/amazonlinux_2.dockerfile +++ b/share/spack/templates/container/amazonlinux_2.dockerfile @@ -14,11 +14,11 @@ RUN yum update -y \ iproute \ make \ patch \ - python \ - python-pip \ - python-setuptools \ + python3 \ + python3-pip \ + python3-setuptools \ unzip \ - && pip install boto3 \ + && pip3 install boto3 \ && rm -rf /var/cache/yum \ && yum clean all {% endblock %} diff --git a/share/spack/templates/container/centos_7.dockerfile b/share/spack/templates/container/centos_7.dockerfile index 6ce2181298..d4401c5413 100644 --- a/share/spack/templates/container/centos_7.dockerfile +++ b/share/spack/templates/container/centos_7.dockerfile @@ -16,11 +16,11 @@ RUN yum update -y \ iproute \ make \ patch \ - python \ - python-pip \ - python-setuptools \ + python3 \ + python3-pip \ + python3-setuptools \ unzip \ - && pip install boto3 \ + && pip3 install boto3 \ && rm -rf /var/cache/yum \ && yum clean all {% endblock %} diff --git a/share/spack/templates/container/centos_8.dockerfile b/share/spack/templates/container/centos_8.dockerfile deleted file mode 100644 index 48deb14673..0000000000 --- a/share/spack/templates/container/centos_8.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -{% extends "container/bootstrap-base.dockerfile" %} -{% block install_os_packages %} -RUN yum update -y \ - # See https://fedoraproject.org/wiki/EPEL#Quickstart for powertools - && yum install -y dnf-plugins-core \ - && dnf config-manager --set-enabled powertools \ - && yum install -y epel-release \ - && yum update -y \ - && yum --enablerepo epel groupinstall -y "Development Tools" \ - && yum --enablerepo epel install -y \ - curl \ - findutils \ - gcc-c++ \ - gcc \ - gcc-gfortran \ - git \ - gnupg2 \ - hostname \ - iproute \ - make \ - patch \ - python38 \ - python38-pip \ - python38-setuptools \ - unzip \ - && pip3 install boto3 \ - && rm -rf /var/cache/yum \ - && yum clean all -{% endblock %} diff --git a/share/spack/templates/container/centos_stream.dockerfile b/share/spack/templates/container/centos_stream.dockerfile new file mode 100644 index 0000000000..48deb14673 --- /dev/null +++ b/share/spack/templates/container/centos_stream.dockerfile @@ -0,0 +1,29 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + # See https://fedoraproject.org/wiki/EPEL#Quickstart for powertools + && yum install -y dnf-plugins-core \ + && dnf config-manager --set-enabled powertools \ + && yum install -y epel-release \ + && yum update -y \ + && yum --enablerepo epel groupinstall -y "Development Tools" \ + && yum --enablerepo epel install -y \ + curl \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hostname \ + iproute \ + make \ + patch \ + python38 \ + python38-pip \ + python38-setuptools \ + unzip \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} diff --git a/share/spack/templates/container/ubuntu_1604.dockerfile b/share/spack/templates/container/ubuntu_1604.dockerfile deleted file mode 100644 index 95864e6bed..0000000000 --- a/share/spack/templates/container/ubuntu_1604.dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -{% extends "container/bootstrap-base.dockerfile" %} -{% block env_vars %} -{{ super() }} -ENV DEBIAN_FRONTEND=noninteractive \ - LANGUAGE=en_US.UTF-8 \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 -{% endblock %} -{% block install_os_packages %} -RUN apt-get -yqq update \ - && apt-get -yqq install --no-install-recommends \ - build-essential \ - ca-certificates \ - curl \ - file \ - g++ \ - gcc \ - gfortran \ - git \ - gnupg2 \ - iproute2 \ - locales \ - lua-posix \ - make \ - python3 \ - python3-pip \ - python3-setuptools \ - unzip \ - && locale-gen en_US.UTF-8 \ - && pip3 install boto3 \ - && rm -rf /var/lib/apt/lists/* -{% endblock %} diff --git a/share/spack/templates/container/ubuntu_1804.dockerfile b/share/spack/templates/container/ubuntu_1804.dockerfile deleted file mode 100644 index 47af990d6a..0000000000 --- a/share/spack/templates/container/ubuntu_1804.dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "container/ubuntu_1604.dockerfile" %} -{% block post_checkout %} -# [WORKAROUND] -# https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 -RUN ln -s posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so -{% endblock %} diff --git a/share/spack/templates/container/ubuntu_1804.dockerfile b/share/spack/templates/container/ubuntu_1804.dockerfile new file mode 120000 index 0000000000..9c0cea3c2a --- /dev/null +++ b/share/spack/templates/container/ubuntu_1804.dockerfile @@ -0,0 +1 @@ +ubuntu_2004.dockerfile \ No newline at end of file diff --git a/share/spack/templates/container/ubuntu_2004.dockerfile b/share/spack/templates/container/ubuntu_2004.dockerfile deleted file mode 120000 index 106119ce68..0000000000 --- a/share/spack/templates/container/ubuntu_2004.dockerfile +++ /dev/null @@ -1 +0,0 @@ -ubuntu_1604.dockerfile \ No newline at end of file diff --git a/share/spack/templates/container/ubuntu_2004.dockerfile b/share/spack/templates/container/ubuntu_2004.dockerfile new file mode 100644 index 0000000000..26b6562952 --- /dev/null +++ b/share/spack/templates/container/ubuntu_2004.dockerfile @@ -0,0 +1,32 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block env_vars %} +{{ super() }} +ENV DEBIAN_FRONTEND=noninteractive \ + LANGUAGE=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LC_ALL=en_US.UTF-8 +{% endblock %} +{% block install_os_packages %} +RUN apt-get -yqq update \ + && apt-get -yqq upgrade \ + && apt-get -yqq install --no-install-recommends \ + build-essential \ + ca-certificates \ + curl \ + file \ + g++ \ + gcc \ + gfortran \ + git \ + gnupg2 \ + iproute2 \ + locales \ + make \ + python3 \ + python3-pip \ + python3-setuptools \ + unzip \ + && locale-gen en_US.UTF-8 \ + && pip3 install boto3 \ + && rm -rf /var/lib/apt/lists/* +{% endblock %} diff --git a/share/spack/templates/container/ubuntu_2204.dockerfile b/share/spack/templates/container/ubuntu_2204.dockerfile new file mode 120000 index 0000000000..9c0cea3c2a --- /dev/null +++ b/share/spack/templates/container/ubuntu_2204.dockerfile @@ -0,0 +1 @@ +ubuntu_2004.dockerfile \ No newline at end of file -- cgit v1.2.3-70-g09d2