sylabs/singularity: SingularityCE 3.9.0
Authors/Creators
- Gregory M. Kurtzer1
- cclerget
- Dave Trudgian2
- Michael Bauer3
- Ian Kaneshiro
- David Godlove4
- Vanessasaurus
- Yannick Cote5
- Adam Hughes6
- Geoffroy Vallee
- DrDaveD
- Justin Cook7
- Jason Stover
- Brian P Bockelman8
- Marcelo Magallon9
- Jacob Chappell10
- Mike Frisch
- Daniele Tamino
- Carlos Eduardo Arango Gutierrez11
- Carl Madison
- Sasha Yakovtseva
- Amanda Duffy12
- Satrajit Ghosh13
- VP
- Tru Huynh14
- Mike Gray15
- Yaroslav Halchenko16
- Felix Abecassis17
- 1. Singularity Labs
- 2. @sylabs
- 3. Facebook
- 4. NIH HPC
- 5. Red Hat
- 6. Sylabs Inc
- 7. @Linaro
- 8. Morgridge Institute for Research
- 9. @grafana
- 10. Chappell Consulting & Tutoring
- 11. @RedHatOfficial
- 12. Lenovo
- 13. MIT
- 14. Unité de Bioinformatique Structurale, Institut Pasteur
- 15. Self
- 16. Dartmouth College, @Debian, @DataLad, @PyMVPA, @fail2ban
- 17. NVIDIA
Description
This is the first release of SingularityCE 3.9, the Community Edition of the Singularity container runtime hosted at https://github.com/sylabs/singularity.
Changed defaults / behaviours- Building SingularityCE 3.9.0 requires go >=1.16. We now aim to support the two most recent stable versions of Go. This corresponds to the Go Release Maintenance Policy and Security Policy, ensuring critical bug fixes and security patches are available for all supported language versions.
- LABELs from Docker/OCI images are now inherited. This fixes a longstanding regression from Singularity 2.x. Note that you will now need to use
--forcein a build to override a label that already exists in the source Docker/OCI container. - The source paths for
%fileslines in a definition file are no longer interpreted by a shell. This means that environment variable substitution is not performed. Previously, environment variables were substituted for source paths, but not destination paths, leading to unexpected copy behaviour. Globbing for source files will now follow the Gofilepath.Matchpattern syntax. - Removed
--nonetflag, which was intended to disable networking for in-VM execution, but has no effect. --nohttpsflag has been deprecated in favour of--no-https. The old flag is still accepted, but will display a deprecation warning.- Paths for
cryptsetup,go,ldconfig,mksquashfs,nvidia-container-cli,unsquashfsare now found at build time bymconfigand written intosingularity.conf. The path to these executables can be overridden by changing the value insingularity.conf. - When calling
ldconfigto find GPU libraries, singularity will not fall back to/sbin/ldconfigif the configuredldconfigerrors. If installing in a Guix/Nix on environment on top of a standard host distribution you must setldconfig path = /sbin/ldconfigto use the host distributionldconfigto find GPU libraries. --nvwill not callnvidia-container-clito find host libraries, unless the new experimental GPU setup flow that employsnvidia-container-clifor all GPU related operations is enabled (see below).- If a container is run with
--nvcliand--contain, only GPU devices specified via theNVIDIA_VISIBLE_DEVICESenvironment variable will be exposed within the container. UseNVIDIA_VISIBLE_DEVICES=allto access all GPUs inside a container run with--nvccli. - Example log-plugin rewritten as a CLI callback that can log all commands executed, instead of only container execution, and has access to command arguments.
- The bundled reference CNI plugins are updated to v1.0.1. The
flannelplugin is no longer included, as it is maintained as a separate plugin at: https://github.com/flannel-io/cni-plugin. If you use the flannel CNI plugin you should install it from this repository. - Instances are no longer created with an IPC namespace by default. An IPC namespace can be specified with the
-i|--ipcflag. - The behaviour of the
allow containerdirectives insingularity.confhas been modified, to support more intuitive limitations on the usage of SIF and non-SIF container images. If you use these directives, you may need to make changes to singularity.conf to preserve behaviour.- A new
allow container sifdirective permits or denies usage of unencrypted SIF images, irrespective of the filesystem(s) inside the SIF. - The
allow container encrypteddirective permits or denies usage of SIF images with an encrypted root filesystem. - The
allow container squashfs/extfsdirectives insingularity.confpermit or deny usage of bare SquashFS and EXT image files only. - The effect of the
allow container dirdirective is unchanged.
- A new
--writable-tmpfscan be used withsingularity buildto run the%testsection of the build with a ephemeral tmpfs overlay, permitting tests that write to the container filesystem.- The
--compatflag for actions is a new short-hand to enable a number of options that increase OCI/Docker compatibility. Infers--containall, --no-init, --no-umask, --writable-tmpfs. Does not use user, uts, or network namespaces as these may not be supported on many installations. remote add --insecuremay be used to configure endpoints that are only accessible via http.- The experimental
--nvccliflag will usenvidia-container-clito setup the container for Nvidia GPU operation. SingularityCE will not bind GPU libraries itself. Environment variables that are used with Nvidia'sdocker-nvidiaruntime to configure GPU visibility / driver capabilities & requirements are parsed by the--nvccliflag from the environment of the calling user. By default, thecomputeandutilityGPU capabilities are configured. Theuse nvidia-container-clioption insingularity.confcan be set toyesto always usenvidia-container-cliwhen supported. Note that in a setuid install,nvidia-container-cliwill be run as root with required ambient capabilities.--nvccliis not currently supported in the hybrid fakeroot (setuid install +--fakeroot) workflow. Please see documentation for more details. - The
--apply-cgroupsflag can be used to apply cgroups resource and device restrictions on a system using the v2 unified cgroups hierarchy. The resource restrictions must still be specified in the v1 / OCI format, which will be translated into v2 cgroups resource restrictions, and eBPF device restrictions. - A new
--mountflag andSINGULARITY_MOUNTenvironment variable can be used to specify bind mounts intype=bind,source=<src>,destination=<dst>[,options...]format. This improves CLI compatibility with other runtimes, and allows binding paths containing:and,characters (using CSV style escaping). - Perform concurrent multi-part downloads for
library://URIs. Uses 3 concurrent downloads by default, and is configurable insingularity.confor via environment variables.
- The
ocicommands will operate on systems that use the v2 unified cgroups hierarchy. - Ensure invalid values passed to
config global --setcannot lead to an empty configuration file being written. - An invalid remote build source (bootstrap) will be identified before attempting to submit the build.
--no-httpsnow applies to connections made to library services specified inlibrary://<hostname>/...URIs.
Thanks to our contributors for code, feedback and, testing efforts!
As always, please report any bugs to: https://github.com/sylabs/singularity/issues/new
If you think that you've discovered a security vulnerability please report it to: security@sylabs.io
Have fun!
DownloadsPlease use the singularity-ce-3.9.0.tar.gz download below to obtain and install SingularityCE 3.9.0. The GitHub auto-generated 'Source Code' downloads do not include required dependencies etc.
Files
sylabs/singularity-v3.9.0.zip
Files
(5.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:bd8d0090def28ab2e0ed0b3eccd14f88
|
5.8 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/sylabs/singularity/tree/v3.9.0 (URL)