Singularity Desktop macOS (Alpha Release)

Download Now (Alpha Release v0.0.2alpha) Documentation

Singularity Desktop for macOS (Alpha Preview)

Singularity Desktop for macOS (Alpha Preview) allows Linux-based Singularity containers to be designed, built, tested, and signed/verified on macOS. This capability is enabled through two components:

  1. Singularity itself - a native port of the software to macOS that offers a subset of the functionality currently available under Linux
  2. The macOS compatibility layer - a pre-built package that provides a binary interface between Singularity and macOS
Package

Basic Installation

Singularity Desktop for macOS (Alpha Preview) is distributed as a DMG file (macOS disk image), namely singularity-desktop-0.0.2alpha.dmg. The software should be downloaded, and installed as follows:

Download Now (Alpha Release v0.0.2alpha)
  1. Click on the link to the DMG file (above) to download it
  2. Locate the downloaded DMG file in your "Downloads" folder, and double click on it
  3. From the installer window, double click on the package icon (see below) to install the software

Installation Notes

  • Singularity Desktop for macOS (Alpha Preview) only requires privileged access during the installation process.

  • The contents of this tarball are installed into the "/usr/local" directory. In fact, use of this directory this is a requirement.

DMG

Validating for SIF Containers

Armed with this combination of a native port for macOS and its compatibility layer, Singularity Desktop for macOS (Alpha Preview) can execute Singularity Image Format (SIF) containers available locally or from the Sylabs Cloud.

For a locally stored SIF file,

singularity run lolcow_latest.sif

executes the "lolcow_latest.sif" container. The enabling use of the compatibility layer is completely hidden.

For SIF files hosted via the Sylabs Cloud, the library bootstrap agent is required as follows:

singularity run library://godlovedc/funny/lolcow

At this point, and as far as SIF containers are concerned, the macOS operating environment has been validated for execution of Linux containers in the native format for Singularity.

Validating for OCI Compatible Containers

Singularity can also make use of any OCI compatible container image through a variety of bootstrap agents. As use of images available via the public Docker Hub is common, validating support under macOS will be demonstrated accordingly. Suppose the Docker image "lolcow" is publicly available via the Docker Hub from user "godlovedc"; then, on macOS, this image can be run as follows:

singularity run docker://godlovedc/lolcow

In this example, the Docker image is retrieved and cached locally, converted to SIF, and then executed according to its runscript; although the image remains in the local cache, the SIF file is not saved. To retain a copy of the SIF file, the image should be pulled as follows:

singularity pull docker://godlovedc/lolcow

In this latter case, "lolcow_latest.sif" is retained locally fort reuse.

Broader Use

Singularity Desktop for macOS (Alpha Preview) allows Linux containers to be designed, built, tested, and signed/verified on macOS. Although the long-term plan is to deliver UX parity on macOS when compared to Linux, the current alpha preview implementation is the starting point.

From the end user’s perspective, the documentation here provides an excellent starting point for currently supported commands. Administrator-facing documentation is also available, and can be found here.

Known Limitations

Singularity for macOS is currently available as an alpha-stage preview release. In this section, known limitations of the port to macOS are identified.

Build command limitations

At the current time, it is only possible to build images for Singularity by making use of the Remote Builder service from the Sylabs Cloud. In other words,

singularity build --remote lolcow_rb.sif docker://godlovedc/lolcow

is a supported means for ultimately producing the SIF file "lolcow_rb.sif" locally. The Remote Builder service can also make use of locally stored definition files.

Mount limitations

When mounting directories from the host, the directory name of two mounts cannot be the same. For example:

singularity exec -B /tmp -B /var/tmp docker://godlovedc/lolcow

would not work correctly because the last directory name of "tmp" is the same between the two.

Providing Feedback

Please refer to Contributing for additional details.

License

The included Singularity binary is released under the same license as Singularity itself. SyOS is released under a separate license which you can read here. Please see this page for information on the OSS packages included.