Skip to content
Snippets Groups Projects
Commit 90320671 authored by Sylvester Joosten's avatar Sylvester Joosten
Browse files

Merge branch 'staging' into 'master'

New v2.1 release version

See merge request !8
parents c04581bd 67e643c5
Branches
Tags v2.1.0
1 merge request!8New v2.1 release version
......@@ -100,7 +100,7 @@ release_unstable:
builder_singularity:
stage: singularity
tags:
- sodium dind
- singularity
only:
- staging
- tags
......@@ -120,7 +120,7 @@ builder_singularity:
release_singularity:
stage: singularity
tags:
- sodium dind
- singularity
only:
- staging
- tags
......
......@@ -15,9 +15,9 @@ cd eic_container
modeuefile will be installed to `$PREFIX/../../etc/modulefiles`.
You can use the `-v` flag to select the version you want to deploy, or omit the
flag if you want to install the master build. The recommended stable
release version is `v2.0.4`.
release version is `v2.1.0`.
```bash
./deploy.py -v 2.0.4 <PREFIX>
./deploy.py -v 2.1.0 <PREFIX>
```
Available flags:
......@@ -109,18 +109,19 @@ Included software:
- heppdt@3.04.01
- clhep@2.4.1.3
- eigen@3.3.7
- python@3.7.7 with pip, numpy, pyyaml, matplotlib, ipython, scipy
- python@3.7.7 with pip, numpy, pyyaml, pyafp, matplotlib, ipython, scipy
- xrootd@4.12.3
- root@6.22.00
- pythia8@8244
- hepmc3@3.2.2 +python +rootio
- podio@0.10.0
- podio@0.11.0
- geant4@10.6.2
- dd4hep@1.13.0
- acts@0.27.1
- dd4hep@1.13.1
- acts@0.29.0
- gaudi@33.2
- NPDet development version
- The singularity build exports the following applications:
- eic_shell: a development shell in the image
- container_dev: same as EIC shell
- root
- ipython
2.0.5
2.1.0
# Builder with Argonne EIC software
#
FROM eicweb.phy.anl.gov:4567/containers/image_recipes/eic_spack:1.0.0
FROM eicweb.phy.anl.gov:4567/containers/image_recipes/ubuntu_spack:0.15.3
LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \
name="eic_builder" \
......@@ -20,36 +20,57 @@ ENV DOCKERFILE_BASE=ubuntu \
## Ensure an up-to-date custom package list
RUN rm -rf $SPACK_ROOT/np-spack \
&& git clone https://eicweb.phy.anl.gov/EIC/np-spack.git $SPACK_ROOT/np-spack \
&& cd $SPACK_ROOT/np-spack && git checkout v`spack --version` && cd - \
&& rm -rf $SPACK_ROOT/np-spack/.git \
&& echo "repos:" > $SPACK_ROOT/etc/spack/repos.yaml \
&& echo " - $SPACK_ROOT/np-spack" >> $SPACK_ROOT/etc/spack/repos.yaml
## Install the software, building on the existing root environment.
RUN cd /opt/spack-environment && spack env activate . \
&& spack add npdet@master \
&& spack install \
## Setup our environment definition
COPY spack.yaml /opt/spack-environment/spack.yaml
## Install the software, no garbage collection at this stage
## as this is a raw builder image
RUN cd /opt/spack-environment \
&& spack env activate . \
&& spack install -j32 \
&& spack clean -a
## FIXME: ipython etc should be added upstream
## Install additional python packages
RUN cd /opt/spack-environment && spack env activate . \
&& pip install --trusted-host pypi.org \
--trusted-host files.pythonhosted.org \
--no-cache-dir \
ipython matplotlib scipy
## Build elements prone to change here, to allow us to rebuild
## from runner cache efficiently
RUN cd /opt/spack-environment \
&& spack env activate . \
&& spack add npdet@master \
&& spack install \
&& spack clean -a
## Strip the binaries
#RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \
#RUN find -L /usr/local/* -type f -exec readlink -f '{}' \; | \
# xargs file -i | \
# grep 'charset=binary' | \
# grep 'x-executable\|x-archive\|x-sharedlib' | \
# awk -F: '{print $1}' | xargs strip -s
# Modifications to the environment that are necessary to run
RUN cd /opt/spack-environment && \
spack env activate --sh -d . > /etc/profile.d/z10_spack_environment.sh && \
echo "export BINARY_TAG=x86_64-linux-gcc9-opt" >> /etc/profile.d/z10_spack_environment.sh
# Also make sure we keep the /lib/x86_65-linux-gnu in our PATH
RUN cd /opt/spack-environment \
&& spack env activate --sh -d . > /etc/profile.d/z10_spack_environment.sh \
&& sed -i "s?LD_LIBRARY_PATH=?&/lib/x86_64-linux-gnu:?" /etc/profile.d/z10_spack_environment.sh
##
# Add some extra environment variables
# Somehow PODIO env isn't automatically set,
# and Gaudi likes BINARY_TAG to be set
RUN cd /opt/spack-environment \
&& spack env activate . \
&& export PODIO=`spack find -p podio | grep software | awk '{print $2}'` \
&& echo "export PODIO=${PODIO};" >> /etc/profile.d/z10_spack_environment.sh \
&& echo "export BINARY_TAG=x86_64-linux-gcc9-opt" >> /etc/profile.d/z10_spack_environment.sh
## make sure we have the entrypoints setup correctly
ENTRYPOINT []
......
spack:
specs:
- cmake@3.17.3
- fmt@6.1.2 cxxstd=17
- spdlog@1.5.0
- nlohmann-json
- heppdt@3.04.01
- clhep@2.4.1.3 cxxstd=17
- eigen@3.3.7
- python@3.7.7
- py-pip
- py-numpy
- py-pyyaml
- py-yapf
- xrootd@4.12.3 cxxstd=17 +python
- root@6.22.00 cxxstd=17 +dataframe +fftw +fortran +gdml +http +mlp +pythia8 +root7 +tmva +vc +xrootd +ssl ^mesa+opengl -llvm -osmesa
- pythia8@8244
- hepmc3@3.2.2 +python +rootio
- stow@2.2.2
- podio@0.11.0
- geant4@10.6.2 cxxstd=17 +opengl +vecgeom +x11 +qt ^qt +opengl
- dd4hep@1.13.1 +geant4 +assimp +hepmc3
- acts@0.29.0 +dd4hep +digitization +identification +json +tgeo
- gaudi@33.2
concretization: together
config:
install_tree: /opt/software
view: /usr/local
......@@ -5,7 +5,7 @@ FROM eicweb.phy.anl.gov:4567/containers/eic_container/eic_builder:latest as buil
RUN cd /opt/spack-environment && spack env activate . && spack gc -y
# Strip all the binaries
RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \
RUN find -L /usr/local/* -type f -exec readlink -f '{}' \; | \
xargs file -i | \
grep 'charset=binary' | \
grep 'x-executable\|x-archive\|x-sharedlib' | \
......@@ -37,15 +37,8 @@ RUN apt-get -yqq update \
## Copy over files from builder
COPY --from=builder /opt/spack-environment /opt/spack-environment
COPY --from=builder /opt/software /opt/software
COPY --from=builder /opt/view /opt/view
## Symlink /opt/view to /usr/local
## Maybe in a future release we should install the view directly to /usr/local
## Note that this is mostly useful for downstream use of the container (e.g.
## using the default install prefix for cmake-based builds), as this way
## the users don't have to remember the special /opt/view directory, which is
## more an internal detail of how the container works.
RUN rm -rf /usr/local && ln -s /opt/view /usr/local
RUN rm -rf /usr/local
COPY --from=builder /usr/local /usr/local
## eic-shell and environment scripts. Not strictly needed anymore now we auto-load
## the environment but still provided for backward compatibility (and documentation).
......
......@@ -9,10 +9,6 @@ mkdir -p config
cp /etc/profile.d/z10_spack_environment.sh config/spack-env.sh
## ensure we also have /lib/x86_64-linux-gnu in our library path
## as it contains important ubuntu system libraries
sed -i "s?LD_LIBRARY_PATH=?&/lib/x86_64-linux-gnu:?" config/spack-env.sh
## Spack sets the man-path, which stops bash from using the default man-path
## We can fix this by appending a trailing colon to MANPATH
sed -i '/MANPATH/ s/;$/:;/' config/spack-env.sh
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment