---
layout: default
navsection: installguide
title: Singularity container runtime
...
{% comment %}
Copyright (C) The Arvados Authors. All rights reserved.
SPDX-License-Identifier: CC-BY-SA-3.0
{% endcomment %}
h2(#overview). Overview
Please refer to the "Singularity":{{site.baseurl}}/architecture/singularity.html documentation in the Architecture section.
h2(#configuration). Configuration
To use singularity, first make sure "Singularity is installed":https://sylabs.io/guides/3.7/user-guide/quick_start.html on your cloud worker image or SLURM/LSF compute nodes as applicable. Note @squashfs-tools@ is required.
$ singularity version
3.7.4
$ mksquashfs -version
mksquashfs version 4.3-git (2014/06/09)
[...]
Then update @Containers.RuntimeEngine@ in your cluster configuration:
# Container runtime: "docker" (default) or "singularity"
RuntimeEngine: singularity
Restart your dispatcher (@crunch-dispatch-slurm@, @arvados-dispatch-cloud@, or @arvados-dispatch-lsf@) after updating your configuration file.
h2(#singularity_configuration). Singularity configuration
Docker images are converted on the fly by @mksquashfs@, which can consume a considerable amount of RAM. The RAM usage of mksquashfs can be restricted in @/etc/singularity/singularity.conf@ with a line like @mksquashfs mem = 512M@. The amount of memory made available for mksquashfs should be configured lower than the smallest amount of memory requested by a container on the cluster to avoid the conversion being killed for using too much memory.