Singularity Container Services (SCS) is a free offering from Sylabs that assists you with: Keystore: This function allows you to store keys for signing images, proving your ownership over any image you sign. Container Library: This is a full OCI compliant registry,...
Downloading & Installing UTM
In your browser, go to mac.getutm.app, and click on the Download button.
Installing an ARM64 Linux VM
From the main UTM application window, choose Browse UTM Gallery to open the page on the UTM website containing pre-built guest operating-system images. For the purposes of this demo, we will use the pre-built Debian 11 (Xfce) image.
Increasing the VM’s memory allocation
To ensure that SingularityCE has sufficient resources to run in the virtual machine, it is preferable to adjust the memory settings of the virtual machine before launching it.
The Debian 11 (Xfce) image, as downloaded from the UTM Gallery website, comes with a setting of 1024MB(=1GB) of RAM. Let’s change that to 4096MB(=4GB). Click once on the name of the virtual machine (“Debian 11 (Xfce)”), NOT on the ‘play’ icon that’s to its right.
Booting up the Linux VM for the first time
You can now click on the ‘play’ (▶️) icon to launch the virtual machine. Once it’s done booting up, you will be greeted with a login dialog. If you downloaded this Debian image from the UTM Gallery as suggested above, the login credentials should be:
- username: debian
- password: debian
Installing the prerequisites
Once you have logged in, open a Terminal:
Install the prerequisites for building SingularityCE, as follows:
sudo apt-get update && \ sudo apt-get install -y \ wget \ build-essential \ libseccomp-dev \ libglib2.0-dev \ pkg-config \ squashfs-tools \ cryptsetup \ runc \ curl
Installing the latest Go release
The next step is to download & install the latest Go release.
curl -LO https://go.dev/dl/go1.20.2.linux-arm64.tar.gz sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf go1.20.2.linux-arm64.tar.gz
echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc && \ source ~/.bashrc
$ go version go version go1.20.2 linux/arm64
Now it’s time to install SingularityCE itself!
curl -LO https://github.com/sylabs/singularity/releases/download/v3.11.0/singularity-ce-3.11.0.tar.gz && \ tar -xf singularity-ce-3.11.0.tar.gz
cd singularity-ce-3.11.0 ./mconfig && \ make -C builddir && \ sudo make -C builddir install
$ singularity --version singularity-ce version 3.11.0
Creating & running your first container
To make sure our installation of SingularityCE was successful, let’s create & run our first container. We can do this as follows:
singularity run library://lolcow
$ singularity run library://lolcow INFO: Downloading library image 86.9MiB / 86.9MiB [=========================================] 100 % 7.5 MiB/s 0s ______________________________ < Fri Mar 10 09:46:31 PST 2023 > ------------------------------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Join Our Mailing List
SingularityCE 3.11 was released on 10th February, and is available for download from the GitHub release page. This version brings a host of new features, including: OCI Runtime Mode – with the new experimental ‘–oci’ mode, users can run containers from a native OCI...
Sylabs, the global leader in providing tools and services for performance-intensive container technology, today announced that it has released SingularityCE 3.11, taking a big step towards full OCI compatibility in the future 4.0 release. The newest update adds a...