SC17: reworked module file tutorial section (#5657)
* Reworked module file tutorial section First draft for the SC17 update. This includes: - adding an introduction on module files + Spack's module generation blueprints - adding a set-up section and provide a docker image for easy set-up - updating all the relevant snippets - extending a bit some of the concepts that were already touched * Added reference to #5582 + committed Dockerfiles Also fixed a couple of typos spotted by Denis. * module file tutorial: added section on template customization * module file tutorial: fixed minor typos + rephrased a sentence * module file tutorial: made explicit that Docker image comes with software * module file tutorial: improved phrasing and layout. Thanks Hartzell! * module file tutorial: added vim and nano to editors * module file tutorial: fixed typo * Fixed typos Thanks Adam! * module file tutorial: updated Dockerfile + minor changes in introduction
This commit is contained in:

committed by
Todd Gamblin

parent
1008975bc0
commit
fe889124eb
52
share/spack/docs/docker/module-file-tutorial/Dockerfile
Normal file
52
share/spack/docs/docker/module-file-tutorial/Dockerfile
Normal file
@@ -0,0 +1,52 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
# General environment for docker
|
||||
ENV DEBIAN_FRONTEND=noninteractive \
|
||||
SPACK_ROOT=/usr/local \
|
||||
FORCE_UNSAFE_CONFIGURE=1
|
||||
|
||||
# Install system packages
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
autoconf \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
coreutils \
|
||||
curl man less \
|
||||
emacs-nox vim nano \
|
||||
git \
|
||||
openmpi-bin openmpi-common libopenmpi-dev \
|
||||
python \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Load spack environment on login
|
||||
COPY spack.sh /etc/profile
|
||||
|
||||
# Install spack
|
||||
RUN curl -s -L https://api.github.com/repos/spack/spack/tarball/develop \
|
||||
| tar xzC $SPACK_ROOT --strip 1
|
||||
|
||||
# Copy configuration for external packages
|
||||
COPY packages.yaml $SPACK_ROOT/etc/spack/
|
||||
|
||||
# Build lmod
|
||||
RUN spack install lmod && spack clean -a
|
||||
|
||||
# Build a compiler
|
||||
RUN spack install gcc@7.2.0 && spack clean -a
|
||||
RUN /bin/bash -l -c ' \
|
||||
spack load gcc@7.2.0 \
|
||||
&& spack compiler add'
|
||||
|
||||
# Build the software on top of the compiler
|
||||
RUN spack install netlib-scalapack ^openmpi ^openblas %gcc@7.2.0 \
|
||||
&& spack install netlib-scalapack ^mpich ^openblas %gcc@7.2.0 \
|
||||
&& spack install netlib-scalapack ^openmpi ^netlib-lapack %gcc@7.2.0 \
|
||||
&& spack install netlib-scalapack ^mpich ^netlib-lapack %gcc@7.2.0 \
|
||||
&& spack install py-scipy ^openblas \
|
||||
&& spack clean -a
|
||||
|
||||
# image run hook: the -l will make sure /etc/profile environments are loaded
|
||||
CMD /bin/bash -l
|
||||
|
@@ -0,0 +1,9 @@
|
||||
packages:
|
||||
git:
|
||||
buildable: False
|
||||
paths:
|
||||
git@2.9.4: /usr
|
||||
openmpi:
|
||||
buildable: False
|
||||
paths:
|
||||
openmpi@1.10.2: /usr
|
8
share/spack/docs/docker/module-file-tutorial/spack.sh
Normal file
8
share/spack/docs/docker/module-file-tutorial/spack.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
source $SPACK_ROOT/share/spack/setup-env.sh
|
||||
|
||||
LMOD_DIR=$(spack location -i lmod)
|
||||
|
||||
if [[ $LMOD_DIR ]] ; then
|
||||
source ${LMOD_DIR}/lmod/lmod/init/bash
|
||||
source $SPACK_ROOT/share/spack/setup-env.sh
|
||||
fi
|
Reference in New Issue
Block a user