GlueX and Containers

From GlueXWiki
Revision as of 17:40, 23 March 2022 by Marki (Talk | contribs) (Categories of Containers)

Jump to: navigation, search

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.

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-only/SBG DockerHub
OSG Singularity(Sandbox)/gluex-prereqs-only/SBG CVMFS
PSG Singularity(Sandbox)/gluex-prereqs-only/SBG CVMFS
Big Red (IU) Singularity(Sandbox)/gluex-prereqs-only/SBG CVMFS[?]

At this writing there is no standard container-use practice at JLab.