GlueX and Containers

From GlueXWiki
Revision as of 17:36, 23 March 2022 by Marki (Talk | contribs) (Container Use at Various Sites)

Jump to: navigation, search

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

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