Singularity: Usage Example¶
Creating and Using Ecosystem¶
Flight Env provides quick setup methods to create a singularity software ecosystem.
To install and use singularity:
Note
If installing singularity for a user then there are a number of restrictions and additional steps to consider in configuring the environment. See the Personal Environment section of flight env info singularity.
Create the singularity installation for the user:
[flight@gateway1 ~]$ flight env create singularity Creating environment singularity@default > ✅ Verifying prerequisites > ✅ Fetching prerequisite (squashfs) > ✅ Extracting prerequisite (squashfs) > ✅ Building prerequisite (squashfs) > ✅ Installing prerequisite (squashfs) > ✅ Fetching prerequisite (go) > ✅ Extracting prerequisite (go) > ✅ Fetching prerequisite (singularity) > ✅ Extracting prerequisite (singularity) > ✅ Building prerequisite (singularity) > ✅ Installing prerequisite (singularity) > ✅ Creating environment (singularity@default) Environment singularity@default has been created
Activate the singularity ecosystem:
[flight@gateway1 ~]$ flight env activate singularity <singularity> [flight@gateway1 ~]$
Check that singularity can be run:
<singularity> [flight@gateway1 ~]$ singularity --version singularity version 3.2.1
Installing and Running Perl¶
An example workflow using perl is demonstrated below.
Note
The perl container is built from a docker container which can be searched for in the docker hub. To search the singularity container library, use singularity search SEARCHTERM.
Install specific version:
<singularity> [flight@gateway1 ~]$ singularity build --sandbox perl_5.30.simg docker://perl:5.30 INFO: Starting build... Getting image source signatures Copying blob sha256:4ae16bd4778367b46064f39554128dd2fda2803a5747fddeff74059f353391c9 48.05 MiB / 48.05 MiB [====================================================] 0s Copying blob sha256:bbab4ec87ac4f89eaabdf68dddbd1dd930e3ad43bded38d761b89abf9389a893 7.44 MiB / 7.44 MiB [======================================================] 0s <-- snip --> Writing manifest to image destination Storing signatures INFO: Creating sandbox directory... INFO: Build complete: perl_5.30.simg
Check installation location:
<singularity> [flight@gateway1 ~]$ singularity exec perl_5.30.simg which perl /usr/local/bin/perl
Install perl library (this may prompt for initial
cpanconfiguration, once configuration is complete then the library will be installed):<singularity> [flight@gateway1 ~]$ singularity exec -w perl_5.30.simg cpan File::Slurp INFO: Convert SIF file to sandbox... perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "en_GB.UTF-8", LANG = "en_GB.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Loading internal null logger. Install Log::Log4perl for logging messages Reading '/home/flight/.cpan/Metadata' Database was generated on Wed, 11 Sep 2019 13:29:02 GMT Running install for module 'File::Slurp' <-- snip -->Check installation worked:
<singularity> [flight@gateway1 ~]$ singularity exec perl_5.30.simg cpan File::Slurp perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "en_GB.UTF-8", LANG = "en_GB.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Loading internal logger. Log::Log4perl recommended for better logging Reading '/home/flight/.cpan/Metadata' Database was generated on Wed, 11 Sep 2019 13:29:02 GMT File::Slurp is up to date (9999.27).