From 235558df11de195e2979d179c53dda422c3e21ba Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 1 Dec 2020 23:03:35 +0100 Subject: [PATCH] dockerfiles: add dockerfile for opensuse leap 15 (#20091) * added dockerfile for opensuse leap 15 * updated maintainer info * Update share/spack/docker/leap-15.dockerfile * move copies and symlinks after package install also use ${SPACK_ROOT} for spack calls as this works with buildah Co-authored-by: Massimiliano Culpo --- share/spack/docker/leap-15.dockerfile | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 share/spack/docker/leap-15.dockerfile diff --git a/share/spack/docker/leap-15.dockerfile b/share/spack/docker/leap-15.dockerfile new file mode 100644 index 0000000000..1da72615ad --- /dev/null +++ b/share/spack/docker/leap-15.dockerfile @@ -0,0 +1,61 @@ +FROM opensuse/leap:15.2 +MAINTAINER Christian Goll + +ENV DOCKERFILE_BASE=opensuse \ + DOCKERFILE_DISTRO=opensuse_leap \ + DOCKERFILE_DISTRO_VERSION=15.2 \ + SPACK_ROOT=/opt/spack \ + DEBIAN_FRONTEND=noninteractive \ + CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ + container=docker + +RUN zypper ref && \ + zypper up -y && \ + zypper in -y python3-base python3-boto3\ + xz gzip tar bzip2 curl patch \ + gcc-c++ gcc-fortran make cmake automake &&\ + 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"] + +# Find tools which are in distro +RUN ${SPACK_ROOT}/bin/spack external find --scope system + +# 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"]