Singularity Compose: Orchestration for Singularity Instances

The Singularity container technology started to become popular in 2016, as it offered a more secure option to run encapsulated environments (Kurtzer, Sochat, & Bauer, 2017). Traditionally, this meant that Singularity users could run a script built into the container (called a runscript), execute a custom command, or shell into a container. Unlike Docker (Merkel, 2014), these basic interactions simply interacted with processes in the foreground (e.g., running a script and exiting) and were not appropriate to run background services. This was a task for container instances (Singularity contributors, 2019).