Containers

The containers are released both for docker and singularity. Singularity images are automatically propagated to CVMFS:

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 <https://eicweb.phy.anl.gov/containers/eic_container/-/blob/master/.gitlab-ci.yml#L68>. So testing is the precursor to the next release version.

Images structure is:

Software plan
  • 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.

curl https://eicweb.phy.anl.gov/containers/eic_container/-/raw/master/install.sh | bash

Please follow Use singularity how-to for full details.

Docker containers

Containers are available at eicweb namespace at the dockerhub

  1. 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.

  2. 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