48 lines
1.3 KiB
Docker
48 lines
1.3 KiB
Docker
FROM {{ bootstrap.image }} as bootstrap
|
|
|
|
{% block env_vars %}
|
|
ENV SPACK_ROOT=/opt/spack \
|
|
CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
|
|
container=docker
|
|
{% endblock %}
|
|
|
|
{% block install_os_packages %}
|
|
{% endblock %}
|
|
|
|
RUN mkdir $SPACK_ROOT && cd $SPACK_ROOT && \
|
|
{{ bootstrap.spack_checkout }} && \
|
|
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
|
|
|
|
# [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
|
|
|
|
{% block post_checkout %}
|
|
{% endblock %}
|
|
|
|
WORKDIR /root
|
|
SHELL ["docker-shell"]
|
|
|
|
# Creates the package cache
|
|
RUN spack bootstrap now \
|
|
&& spack bootstrap status --optional \
|
|
&& spack spec hdf5+mpi
|
|
|
|
ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"]
|
|
CMD ["interactive-shell"]
|