GlueX and Containers
Categories of Containers
The container world is not monolithic, so we have to define some terms. The container type, installed software level, and /group/halld binding style (described below) are independent degrees of freedom when categorizing containers.
There are three types: Docker, Singularity, and Shifter
For Singularity there are two sub-types: Sandbox and Singularity Image Format (SIF)
Installed Software Levels
There are three levels: raw, gluex-prereqs, and gluex-software
- raw. This a vanilla OS direct (or nearly so) from the distributer, with only the basic, default set of packages.
- gluex-prereqs-only. Starting from raw, packages needed to build and run the GlueX software stack are added. The GlueX software itself is not included and needs to be provided external to the container, usually with a "bind" directive.
- gluex-with-software. Starting from gluex-prereqs, the GlueX software stack itself is built into the container.
Group Binding Styles
There are two styles for binding /group/halld: system-binds-group (SBG) and user-binds-group (UBG)
There are three methods we use for distributing containers: DockerHub, Web, CVMFS.
Container Use at Various Sites
|Site||Category (type/level/style)||Distribution System|
|Big Red (IU)||Singularity(Sandbox)/gluex-prereqs-only/SBG||CVMFS[?]|
At this writing there is no standard container-use practice at JLab.