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.
This commit is contained in:
parent
b00983439f
commit
f961a11187
46
.github/workflows/build-containers.yml
vendored
46
.github/workflows/build-containers.yml
vendored
@ -13,6 +13,8 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- '.github/workflows/build-containers.yml'
|
- '.github/workflows/build-containers.yml'
|
||||||
- 'share/spack/docker/*'
|
- 'share/spack/docker/*'
|
||||||
|
- 'share/templates/container/*'
|
||||||
|
- 'lib/spack/spack/container/*'
|
||||||
# Let's also build & tag Spack containers on releases.
|
# Let's also build & tag Spack containers on releases.
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
@ -29,11 +31,17 @@ jobs:
|
|||||||
# A matrix of Dockerfile paths, associated tags, and which architectures
|
# A matrix of Dockerfile paths, associated tags, and which architectures
|
||||||
# they support.
|
# they support.
|
||||||
matrix:
|
matrix:
|
||||||
dockerfile: [[amazon-linux, amazonlinux-2.dockerfile, 'linux/amd64,linux/arm64'],
|
# Meaning of the various items in the matrix list
|
||||||
[centos7, centos-7.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le'],
|
# 0: Container name (e.g. ubuntu-bionic)
|
||||||
[leap15, leap-15.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le'],
|
# 1: Platforms to build for
|
||||||
[ubuntu-xenial, ubuntu-1604.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le'],
|
# 2: Base image (e.g. ubuntu:18.04)
|
||||||
[ubuntu-bionic, ubuntu-1804.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le']]
|
dockerfile: [[amazon-linux, 'linux/amd64,linux/arm64', 'amazonlinux:2'],
|
||||||
|
[centos7, 'linux/amd64,linux/arm64,linux/ppc64le', 'centos:7'],
|
||||||
|
[centos-stream, 'linux/amd64,linux/arm64,linux/ppc64le', 'centos:stream'],
|
||||||
|
[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']]
|
||||||
name: Build ${{ matrix.dockerfile[0] }}
|
name: Build ${{ matrix.dockerfile[0] }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@ -52,14 +60,26 @@ jobs:
|
|||||||
versioned="${{matrix.dockerfile[0]}}:${GITHUB_REF##*/}"
|
versioned="${{matrix.dockerfile[0]}}:${GITHUB_REF##*/}"
|
||||||
echo "versioned=${versioned}" >> $GITHUB_ENV
|
echo "versioned=${versioned}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Check ${{ matrix.dockerfile[1] }} Exists
|
- name: Generate the Dockerfile
|
||||||
|
env:
|
||||||
|
SPACK_YAML_OS: "${{ matrix.dockerfile[2] }}"
|
||||||
run: |
|
run: |
|
||||||
printf "Preparing to build ${{ env.container }} from ${{ matrix.dockerfile[1] }}"
|
.github/workflows/generate_spack_yaml_containerize.sh
|
||||||
if [ ! -f "share/spack/docker/${{ matrix.dockerfile[1]}}" ]; then
|
. share/spack/setup-env.sh
|
||||||
printf "Dockerfile ${{ matrix.dockerfile[0]}} does not exist"
|
mkdir -p dockerfiles/${{ matrix.dockerfile[0] }}
|
||||||
|
spack containerize --last-stage=bootstrap | tee dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile
|
||||||
|
printf "Preparing to build ${{ env.container }} from dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile"
|
||||||
|
if [ ! -f "dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile" ]; then
|
||||||
|
printf "dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile does not exist"
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Upload Dockerfile
|
||||||
|
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535
|
||||||
|
with:
|
||||||
|
name: dockerfiles
|
||||||
|
path: dockerfiles
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@27d0a4f181a40b142cce983c5393082c365d1480 # @v1
|
uses: docker/setup-qemu-action@27d0a4f181a40b142cce983c5393082c365d1480 # @v1
|
||||||
|
|
||||||
@ -80,12 +100,14 @@ jobs:
|
|||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Build & Deploy ${{ matrix.dockerfile[1] }}
|
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
|
||||||
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a # @v2
|
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a # @v2
|
||||||
with:
|
with:
|
||||||
file: share/spack/docker/${{matrix.dockerfile[1]}}
|
context: dockerfiles/${{ matrix.dockerfile[0] }}
|
||||||
platforms: ${{ matrix.dockerfile[2] }}
|
platforms: ${{ matrix.dockerfile[1] }}
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
cache-from: type=gha
|
||||||
|
cache-to: type=gha,mode=max
|
||||||
tags: |
|
tags: |
|
||||||
spack/${{ env.container }}
|
spack/${{ env.container }}
|
||||||
spack/${{ env.versioned }}
|
spack/${{ env.versioned }}
|
||||||
|
9
.github/workflows/generate_spack_yaml_containerize.sh
vendored
Executable file
9
.github/workflows/generate_spack_yaml_containerize.sh
vendored
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
(echo "spack:" \
|
||||||
|
&& echo " specs: []" \
|
||||||
|
&& echo " container:" \
|
||||||
|
&& echo " format: docker" \
|
||||||
|
&& echo " images:" \
|
||||||
|
&& echo " os: \"${SPACK_YAML_OS}\"" \
|
||||||
|
&& echo " spack:" \
|
||||||
|
&& echo " ref: ${GITHUB_REF}") > spack.yaml
|
@ -12,11 +12,19 @@
|
|||||||
},
|
},
|
||||||
"os_package_manager": "yum_amazon"
|
"os_package_manager": "yum_amazon"
|
||||||
},
|
},
|
||||||
"centos:8": {
|
"centos:stream": {
|
||||||
"bootstrap": {
|
"bootstrap": {
|
||||||
"template": "container/centos_8.dockerfile"
|
"template": "container/centos_stream.dockerfile",
|
||||||
|
"image": "quay.io/centos/centos:stream"
|
||||||
},
|
},
|
||||||
"os_package_manager": "yum"
|
"os_package_manager": "yum",
|
||||||
|
"build": "spack/centos-stream",
|
||||||
|
"final": {
|
||||||
|
"image": "quay.io/centos/centos:stream"
|
||||||
|
},
|
||||||
|
"build_tags": {
|
||||||
|
"develop": "latest"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"centos:7": {
|
"centos:7": {
|
||||||
"bootstrap": {
|
"bootstrap": {
|
||||||
@ -51,10 +59,24 @@
|
|||||||
},
|
},
|
||||||
"os_package_manager": "apt"
|
"os_package_manager": "apt"
|
||||||
},
|
},
|
||||||
|
"ubuntu:22.04": {
|
||||||
|
"bootstrap": {
|
||||||
|
"template": "container/ubuntu_2204.dockerfile"
|
||||||
|
},
|
||||||
|
"os_package_manager": "apt",
|
||||||
|
"build": "spack/ubuntu-jammy",
|
||||||
|
"build_tags": {
|
||||||
|
"develop": "latest"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ubuntu:20.04": {
|
"ubuntu:20.04": {
|
||||||
"bootstrap": {
|
"bootstrap": {
|
||||||
"template": "container/ubuntu_2004.dockerfile"
|
"template": "container/ubuntu_2004.dockerfile"
|
||||||
},
|
},
|
||||||
|
"build": "spack/ubuntu-focal",
|
||||||
|
"build_tags": {
|
||||||
|
"develop": "latest"
|
||||||
|
},
|
||||||
"os_package_manager": "apt"
|
"os_package_manager": "apt"
|
||||||
},
|
},
|
||||||
"ubuntu:18.04": {
|
"ubuntu:18.04": {
|
||||||
@ -66,16 +88,6 @@
|
|||||||
"build_tags": {
|
"build_tags": {
|
||||||
"develop": "latest"
|
"develop": "latest"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"ubuntu:16.04": {
|
|
||||||
"bootstrap": {
|
|
||||||
"template": "container/ubuntu_1604.dockerfile"
|
|
||||||
},
|
|
||||||
"os_package_manager": "apt",
|
|
||||||
"build": "spack/ubuntu-xenial",
|
|
||||||
"build_tags": {
|
|
||||||
"develop": "latest"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"os_package_managers": {
|
"os_package_managers": {
|
||||||
|
@ -129,5 +129,6 @@ def checkout_command(url, ref, enforce_sha, verify):
|
|||||||
if enforce_sha or verify:
|
if enforce_sha or verify:
|
||||||
ref = _verify_ref(url, ref, enforce_sha)
|
ref = _verify_ref(url, ref, enforce_sha)
|
||||||
|
|
||||||
command = 'git clone {0} . && git checkout {1} '.format(url, ref)
|
command = ('git clone {0} . && git fetch origin {1}:container_branch &&'
|
||||||
|
' git checkout container_branch ').format(url, ref)
|
||||||
return command
|
return command
|
||||||
|
@ -1,69 +0,0 @@
|
|||||||
FROM public.ecr.aws/amazonlinux/amazonlinux:2.0.20201111.0
|
|
||||||
MAINTAINER Spack Maintainers <maintainers@spack.io>
|
|
||||||
|
|
||||||
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"]
|
|
@ -1,73 +0,0 @@
|
|||||||
FROM centos:7
|
|
||||||
MAINTAINER Spack Maintainers <maintainers@spack.io>
|
|
||||||
|
|
||||||
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"]
|
|
@ -1,72 +0,0 @@
|
|||||||
FROM opensuse/leap:15.3
|
|
||||||
MAINTAINER Christian Goll <cgoll@suse.com>
|
|
||||||
|
|
||||||
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"]
|
|
@ -1,6 +1,6 @@
|
|||||||
modules:
|
modules:
|
||||||
enable:
|
default:
|
||||||
- lmod
|
enable: []
|
||||||
lmod:
|
lmod:
|
||||||
core_compilers:
|
core_compilers:
|
||||||
- gcc
|
- gcc
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
FROM ubuntu:16.04
|
|
||||||
MAINTAINER Spack Maintainers <maintainers@spack.io>
|
|
||||||
|
|
||||||
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"]
|
|
@ -1,73 +0,0 @@
|
|||||||
FROM ubuntu:18.04
|
|
||||||
MAINTAINER Spack Maintainers <maintainers@spack.io>
|
|
||||||
|
|
||||||
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"]
|
|
@ -14,11 +14,11 @@ RUN yum update -y \
|
|||||||
iproute \
|
iproute \
|
||||||
make \
|
make \
|
||||||
patch \
|
patch \
|
||||||
python \
|
python3 \
|
||||||
python-pip \
|
python3-pip \
|
||||||
python-setuptools \
|
python3-setuptools \
|
||||||
unzip \
|
unzip \
|
||||||
&& pip install boto3 \
|
&& pip3 install boto3 \
|
||||||
&& rm -rf /var/cache/yum \
|
&& rm -rf /var/cache/yum \
|
||||||
&& yum clean all
|
&& yum clean all
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -16,11 +16,11 @@ RUN yum update -y \
|
|||||||
iproute \
|
iproute \
|
||||||
make \
|
make \
|
||||||
patch \
|
patch \
|
||||||
python \
|
python3 \
|
||||||
python-pip \
|
python3-pip \
|
||||||
python-setuptools \
|
python3-setuptools \
|
||||||
unzip \
|
unzip \
|
||||||
&& pip install boto3 \
|
&& pip3 install boto3 \
|
||||||
&& rm -rf /var/cache/yum \
|
&& rm -rf /var/cache/yum \
|
||||||
&& yum clean all
|
&& yum clean all
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -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 %}
|
|
@ -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 %}
|
|
1
share/spack/templates/container/ubuntu_1804.dockerfile
Symbolic link
1
share/spack/templates/container/ubuntu_1804.dockerfile
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ubuntu_2004.dockerfile
|
@ -1 +0,0 @@
|
|||||||
ubuntu_1604.dockerfile
|
|
32
share/spack/templates/container/ubuntu_2004.dockerfile
Normal file
32
share/spack/templates/container/ubuntu_2004.dockerfile
Normal file
@ -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 %}
|
1
share/spack/templates/container/ubuntu_2204.dockerfile
Symbolic link
1
share/spack/templates/container/ubuntu_2204.dockerfile
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ubuntu_2004.dockerfile
|
Loading…
Reference in New Issue
Block a user