Containers ========== The containers are released both for docker and singularity. Singularity images are automatically propagated to CVMFS: - `Containers repository `_ - `Docker Hub `_ - CVMFS path: .. code:: singularity run /cvmfs/singularity.opensciencegrid.org/eicweb/jug_xl:3.0-stable The versioning is: - **nightly** - recreated every night, using master branches - **testing** - recreated every night, using fixed versions - **4.0-stable** - the latest stable version from 3.0 branch - **unstable** (unstable-vX.x in future) - the latest build from triggered by CI from changed repo - **4.0.0** - exact tagged version Nightly and testing are different in that nightly uses the master branch of the software, while testing uses whatever version is given at the top of the `gitlab-ci.yml `. So testing is the precursor to the next release version. Images structure is: .. figure:: ../_images/image-hierarhy.svg :alt: Software plan :width: 800 - **debian_base** - is a container generic base container based on amd64/debian:testing - **jug_dev** - have all major HENP packages such as ROOT, Geant4 and DD4HEP but without detector and reconstruction. The image is used for testing purposes and automation. - **jug_xl** - intended to be used to run simulation and work on detectors for users. jug_dev + full simulation packages Singularity ----------- The below command creates the right working environment. It checks if there are CVMFS images available (which is true for JLab and BNL farms) and links them or automatically download images (which is a scenario for users laptops). It also creates eic_shell with the right environment setup, prepares the current dir to work with detector or etc. .. code:: curl https://eicweb.phy.anl.gov/containers/eic_container/-/raw/master/install.sh | bash Please follow :ref:`Use singularity` how-to for full details. Docker containers ----------------- Containers are available at eicweb namespace at `the dockerhub `_ #. To load the container environment in your run scripts, you have to do nothing special. The environment is already setup with good defaults, so you can use all the programs in the container as usual and assume everything needed to run the included software is already setup. #. If using this container as a basis for a new container, you can direction access the full container environment from a docker ``RUN`` shell command with no further action needed. For the most optimal experience, you can install your software to ``/usr/local`` to fully integrate with the existing environment. (Note that, internally, ``/usr/local`` is a symlink to ``/opt/view``\ ). Packages & versions ------------------- * Included software: * gcc@10.2.0 * cmake@3.18.4 * fmt@7.1.2 * spdlog@1.5.0 * nlohmann-json * heppdt@3.04.01 * clhep@2.4.1.3 * eigen@3.3.8 * python@3.7.8 with pip, numpy, pyyaml, pyafp, matplotlib, ipython, scipy * xrootd@4.12.3 * root@6.22.06 * pythia8@8303 * hepmc3@3.2.2 +python +rootio * stow@2.3.1 * podio@0.13 * geant4@10.6.2 * dd4hep@1.14.1 * acts@1.00.0 * gaudi@34.0 * dawn@3.91a * dawncut@1.54a * opencascade * The singularity build exports the following applications: * eic_shell: a development shell in the image * container_dev: same as EIC shell * ipython