SingularityCE 4.1.0
SingularityCE 4.1.0 is the first release in the 4.1 series, introducing Dockerfile builds, multi-layer OCI-SIF images, and many other improvements. See the release notes below, and the user and admin guides for more information:
- https://docs.sylabs.io/guides/4.1/admin-guide/new.html
- https://docs.sylabs.io/guides/4.1/user-guide/new.html
Changed defaults / behaviours
-
--oci
mode containers and native mode instances can now be successfully started as a non-root user on cgroups v2 systems when both:- The system configuration / environment does not provide the correct information necessary to communicate with systemd via dbus.
- Resource limits (e.g.
--cpus
) have not been requested.
The container / instance will be started in the current cgroup, and information about the configuration issue displayed to the user as warnings.
-
In native mode, SIF/SquashFS container images will now be mounted with squashfuse when kernel mounts are disabled in
singularity.conf
, or cannot be used (non-setuid / user namespace workflow). If the FUSE mount fails, Singularity will fall back to extracting the container to a temporary sandbox in order to run it. -
In native mode, bare extfs container images will now be mounted with fuse2fs when kernel mounts are disabled in
singularity.conf
, or cannot be used (non-setuid / user namespace workflow).
New Features & Functionality
- The
registry login
andregistry logout
commands now support a--authfile <path>
flag, which causes the OCI credentials to be written to / removed from a custom file located at<path>
instead of the default location ($HOME/.singularity/docker-config.json
). The commandspull
,push
,run
,exec
,shell
, andinstance start
can now also be passed a--authfile <path>
option, to read OCI registry credentials from this custom file. - A new
--keep-layers
flag, for thepull
andrun/shell/exec/instance start
commands, allows individual layers to be preserved when an OCI-SIF image is created from an OCI source. Multi layer OCI-SIF images can be run with SingularityCE 4.1 and later. - Singularity will now build OCI-SIF images from Dockerfiles, if the
--oci
flag is used with thebuild
command. Provide a Dockerfile as the final argument tobuild
, instead of a Singularity definition (.def) file. Supports--build-arg
/--build-arg-file
options,--arch
for cross-architecture builds,--authfile
and other authentication options, and more. See the user guide for more information. - Docker-style SCIF containers (https://sci-f.github.io/tutorial-preview-install) are now supported. If the entrypoint of an OCI container is the
scif
executable, then therun
/exec
/shell
commands in--oci
mode can be given the--app <appname>
flag, and will automatically invoke the relevant SCIF command. - A new
--tmp-sandbox
flag has been added to therun / shell / exec / instance start
commands. This will force Singularity to extract a container to a temporary sandbox before running it, when it would otherwise perform a kernel or FUSE mount.
Bug Fixes
- Added missing
tmp sandbox
directive tosingularity.conf
template.
Deprecated Functionality
- The experimental
--sif-fuse
flag, andsif fuse
directive insingularity.conf
are deprecated. The flag and directive were used to enable experimental mounting of SIF/SquashFS container images with FUSE in prior versions of Singularity. From 4.1, FUSE mounts are used automatically when kernel mounts are disabled / not available.
Thanks / Reporting Bugs
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!
Downloads
Source Code
Please use the singularity-ce-4.1.0.tar.gz download below to obtain and install SingularityCE 4.1.0. The GitHub auto-generated 'Source Code' downloads do not include required dependencies etc.
Packages
RPM / DEB packages are provided for:
- Ubuntu 20.04 (focal)
- Ubuntu 22.04 (jammy)
- RHEL/CentOS 7 (el7)
- RHEL/CentOS/AlmaLinux/Rocky 8 (el8)
- RHEL/CentOS/AlmaLinux/Rocky 9 (el9)
These packages were built with Go 1.21.6