GlueX and Containers
From GlueXWiki
Contents
[hide]Categories of Containers
The container world is not monolithic, so we have to define some terms.
Container Types
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)
Distribution Systems
There are three methods we use for distributing containers: DockerHub, Web, CVMFS.
Container Use at Various Sites
Site | Category (type/level/style) | Distribution System |
---|---|---|
NERSC | Shifter/gluex-prereqs/SBG | DockerHub |
OSG | Singularity(Sandbox)/gluex-prereqs/SBG | CVMFS |
PSG | Singularity(Sandbox)/gluex-prereqs/SBG | CVMFS |
Big Red | Singularity(Sandbox)/gluex-prereqs/SBG | CVMFS[?] |
At this writing there is no standard container-use practice at JLab.