X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5bc8ad779b8d39c63df88c20e5a883f4fe15c6da..547fae4ba065b99e2a2832f441b745dc7cd59889:/doc/install/singularity.html.textile.liquid diff --git a/doc/install/singularity.html.textile.liquid b/doc/install/singularity.html.textile.liquid index 1f38253958..dfe12f314a 100644 --- a/doc/install/singularity.html.textile.liquid +++ b/doc/install/singularity.html.textile.liquid @@ -9,22 +9,17 @@ Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} -Arvados can be configured to use "Singularity":https://sylabs.io/singularity/ instead of Docker to execute containers on cloud nodes or a SLURM/LSF cluster. Singularity may be preferable due to its simpler installation and lack of long-running daemon process and special system users/groups. +h2(#overview). Overview -Please note: -* *Singularity support is currently considered experimental.* -* Even when using the singularity runtime, users' container images are expected to be saved in Docker format using @arv keep docker@. Arvados converts the Docker image to Singularity format (@.sif@) at runtime as needed. Specifying a @.sif@ file as an image when submitting a container request is not yet supported. -* Singularity does not limit the amount of memory available in a container. Each container will have access to all memory on the host where it runs, unless memory use is restricted by SLURM/LSF. -* Programs running in containers may behave differently due to differences between Singularity and Docker. -** The root (image) filesystem is read-only in a Singularity container. Programs that attempt to write outside a designated output or temporary directory are likely to fail. -** The Docker ENTRYPOINT instruction is ignored. -* Arvados is currently tested with Singularity version 3.5.2. +Please refer to the "Singularity":{{site.baseurl}}/architecture/singularity.html documentation in the Architecture section. -To use singularity, first make sure "Singularity is installed":https://sylabs.io/guides/3.5/user-guide/quick_start.html on your cloud worker image or SLURM/LSF compute nodes as applicable. Note @squashfs-tools@ is required. +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.5.2
+3.7.4
 $ mksquashfs -version
 mksquashfs version 4.3-git (2014/06/09)
 [...]
@@ -34,9 +29,13 @@ mksquashfs version 4.3-git (2014/06/09)
 Then update @Containers.RuntimeEngine@ in your cluster configuration:
 
 
-
      # Container runtime: "docker" (default) or "singularity" (experimental)
+
      # 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.