From cba8d1253db865466f835faa035fe52e7a5c1394 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson <17242663+blue42u@users.noreply.github.com> Date: Fri, 28 Apr 2023 05:28:33 -0500 Subject: Add container images supporting RHEL alternatives (#36713) Add container support for AlmaLinux, Fedora 37 and 38 and Rocky Linux --- .github/workflows/build-containers.yml | 8 ++- lib/spack/spack/container/images.json | 84 ++++++++++++++++++++++ .../templates/container/almalinux_8.dockerfile | 28 ++++++++ .../templates/container/almalinux_9.dockerfile | 30 ++++++++ .../spack/templates/container/fedora_37.dockerfile | 29 ++++++++ .../spack/templates/container/fedora_38.dockerfile | 29 ++++++++ .../templates/container/rockylinux_8.dockerfile | 29 ++++++++ .../templates/container/rockylinux_9.dockerfile | 31 ++++++++ 8 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 share/spack/templates/container/almalinux_8.dockerfile create mode 100644 share/spack/templates/container/almalinux_9.dockerfile create mode 100644 share/spack/templates/container/fedora_37.dockerfile create mode 100644 share/spack/templates/container/fedora_38.dockerfile create mode 100644 share/spack/templates/container/rockylinux_8.dockerfile create mode 100644 share/spack/templates/container/rockylinux_9.dockerfile diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 60ade618b9..0e8f4144b8 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -45,7 +45,13 @@ jobs: [leap15, 'linux/amd64,linux/arm64,linux/ppc64le', 'opensuse/leap:15'], [ubuntu-bionic, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:18.04'], [ubuntu-focal, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:20.04'], - [ubuntu-jammy, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:22.04']] + [ubuntu-jammy, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:22.04'], + [almalinux8, 'linux/amd64,linux/arm64,linux/ppc64le', 'almalinux:8'], + [almalinux9, 'linux/amd64,linux/arm64,linux/ppc64le', 'almalinux:9'], + [rockylinux8, 'linux/amd64,linux/arm64', 'rockylinux:8'], + [rockylinux9, 'linux/amd64,linux/arm64,linux/ppc64le', 'rockylinux:9'], + [fedora37, 'linux/amd64,linux/arm64,linux/ppc64le', 'fedora:37'], + [fedora38, 'linux/amd64,linux/arm64,linux/ppc64le', 'fedora:38']] name: Build ${{ matrix.dockerfile[0] }} if: github.repository == 'spack/spack' steps: diff --git a/lib/spack/spack/container/images.json b/lib/spack/spack/container/images.json index 1429864f6d..296658fe5e 100644 --- a/lib/spack/spack/container/images.json +++ b/lib/spack/spack/container/images.json @@ -12,6 +12,90 @@ }, "os_package_manager": "yum_amazon" }, + "fedora:38": { + "bootstrap": { + "template": "container/fedora_38.dockerfile", + "image": "docker.io/fedora:38" + }, + "os_package_manager": "yum", + "build": "spack/fedora38", + "build_tags": { + "develop": "latest" + }, + "final": { + "image": "docker.io/fedora:38" + } + }, + "fedora:37": { + "bootstrap": { + "template": "container/fedora_37.dockerfile", + "image": "docker.io/fedora:37" + }, + "os_package_manager": "yum", + "build": "spack/fedora37", + "build_tags": { + "develop": "latest" + }, + "final": { + "image": "docker.io/fedora:37" + } + }, + "rockylinux:9": { + "bootstrap": { + "template": "container/rockylinux_9.dockerfile", + "image": "docker.io/rockylinux:9" + }, + "os_package_manager": "yum", + "build": "spack/rockylinux9", + "build_tags": { + "develop": "latest" + }, + "final": { + "image": "docker.io/rockylinux:9" + } + }, + "rockylinux:8": { + "bootstrap": { + "template": "container/rockylinux_8.dockerfile", + "image": "docker.io/rockylinux:8" + }, + "os_package_manager": "yum", + "build": "spack/rockylinux8", + "build_tags": { + "develop": "latest" + }, + "final": { + "image": "docker.io/rockylinux:8" + } + }, + "almalinux:9": { + "bootstrap": { + "template": "container/almalinux_9.dockerfile", + "image": "quay.io/almalinux/almalinux:9" + }, + "os_package_manager": "yum", + "build": "spack/almalinux9", + "build_tags": { + "develop": "latest" + }, + "final": { + "image": "quay.io/almalinux/almalinux:9" + } + }, + "almalinux:8": { + "bootstrap": { + "template": "container/almalinux_8.dockerfile", + "image": "quay.io/almalinux/almalinux:8" + }, + "os_package_manager": "yum", + "build": "spack/almalinux8", + "build_tags": { + "develop": "latest" + }, + "final": { + "image": "quay.io/almalinux/almalinux:8" + } + }, "centos:stream": { "bootstrap": { "template": "container/centos_stream.dockerfile", diff --git a/share/spack/templates/container/almalinux_8.dockerfile b/share/spack/templates/container/almalinux_8.dockerfile new file mode 100644 index 0000000000..13009d2796 --- /dev/null +++ b/share/spack/templates/container/almalinux_8.dockerfile @@ -0,0 +1,28 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + && yum install -y \ + bzip2 \ + curl \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hg \ + hostname \ + iproute \ + make \ + patch \ + python3 \ + python3-pip \ + python3-setuptools \ + svn \ + unzip \ + zstd \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} diff --git a/share/spack/templates/container/almalinux_9.dockerfile b/share/spack/templates/container/almalinux_9.dockerfile new file mode 100644 index 0000000000..a8944532e0 --- /dev/null +++ b/share/spack/templates/container/almalinux_9.dockerfile @@ -0,0 +1,30 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + && yum install -y epel-release \ + && yum update -y \ + && yum --enablerepo epel install -y \ + bzip2 \ + curl-minimal \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hg \ + hostname \ + iproute \ + make \ + patch \ + python3 \ + python3-pip \ + python3-setuptools \ + svn \ + unzip \ + zstd \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} diff --git a/share/spack/templates/container/fedora_37.dockerfile b/share/spack/templates/container/fedora_37.dockerfile new file mode 100644 index 0000000000..e1f0570b43 --- /dev/null +++ b/share/spack/templates/container/fedora_37.dockerfile @@ -0,0 +1,29 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + && yum install -y \ + bzip2 \ + curl \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hg \ + hostname \ + iproute \ + make \ + patch \ + python3 \ + python3-pip \ + python3-setuptools \ + svn \ + unzip \ + zstd \ + xz \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} diff --git a/share/spack/templates/container/fedora_38.dockerfile b/share/spack/templates/container/fedora_38.dockerfile new file mode 100644 index 0000000000..a691da9444 --- /dev/null +++ b/share/spack/templates/container/fedora_38.dockerfile @@ -0,0 +1,29 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + && yum install -y \ + bzip2 \ + curl \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hg \ + hostname \ + iproute \ + make \ + patch \ + python3 \ + python3-pip \ + python3-setuptools \ + svn \ + unzip \ + xz \ + zstd \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} diff --git a/share/spack/templates/container/rockylinux_8.dockerfile b/share/spack/templates/container/rockylinux_8.dockerfile new file mode 100644 index 0000000000..a691da9444 --- /dev/null +++ b/share/spack/templates/container/rockylinux_8.dockerfile @@ -0,0 +1,29 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + && yum install -y \ + bzip2 \ + curl \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hg \ + hostname \ + iproute \ + make \ + patch \ + python3 \ + python3-pip \ + python3-setuptools \ + svn \ + unzip \ + xz \ + zstd \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} diff --git a/share/spack/templates/container/rockylinux_9.dockerfile b/share/spack/templates/container/rockylinux_9.dockerfile new file mode 100644 index 0000000000..54c2200cbb --- /dev/null +++ b/share/spack/templates/container/rockylinux_9.dockerfile @@ -0,0 +1,31 @@ +{% extends "container/bootstrap-base.dockerfile" %} +{% block install_os_packages %} +RUN yum update -y \ + && yum install -y epel-release \ + && yum update -y \ + && yum --enablerepo epel install -y \ + bzip2 \ + curl-minimal \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + git \ + gnupg2 \ + hg \ + hostname \ + iproute \ + make \ + patch \ + python3 \ + python3-pip \ + python3-setuptools \ + svn \ + unzip \ + xz \ + zstd \ + && pip3 install boto3 \ + && rm -rf /var/cache/yum \ + && yum clean all +{% endblock %} -- cgit v1.2.3-60-g2f50