Chapter 5.1 : Création de l'image Apptainer

Nous allons créer une image avec G++ 11 et TBB.

Pour créer notre image, nous aurons besoin d'une recette Singularity.ubuntu22 :

Nous allons parti d'une image docker ubuntu 22.04 :
1
2
Bootstrap: docker
From: ubuntu:22.04


Ensuite, nous appellons les commandes d'installation afin d'avoir un environnement de compilation fonctionnel :
1
2
3
4
5
6
7
8
%post
	apt-get update
	apt-get install -y gcc
	apt-get install -y g++
	apt-get install -y cmake make git wget libtbb-dev
	
	apt-get clean
	


Nous définissons une commande qui sera exécuté au moment de l'appel de l'image avec singularity run image.sif command . Ici, tous les paramètres passé comme command seront traités comme une seule et même commande. On peut également appeler un script :
1
2
%runscript
exec $@


Il ne reste plus qu'à décrire l'image pour simplifier son utilisation par d'autres utilisateurs noteSachant que vous serez un autre utilisateur dans quelques semaines :
1
2
%help
	This is an image with the dependencies to create packages for Ubuntu 22.04


Voici le fichier complet :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Bootstrap: docker
From: ubuntu:22.04

%post
	apt-get update
	apt-get install -y gcc
	apt-get install -y g++
	apt-get install -y cmake make git wget libtbb-dev
	
	apt-get clean
	
%runscript
exec $@

%help
	This is an image with the dependencies to create packages for Ubuntu 22.04


Le lien vers le fichier est ici.

Ensuite nous pouvons créer l'image avec Apptainer noteOu Singularity :
apptainer build ubuntu2204-TBB.sif Singularity.ubuntu22


Enfin, il faut copier l'image sur MUST avec un scp :
scp ubuntu2204-TBB.sif votrelogin@lappui.in2p3.fr:/dossier/de/destination


En faisant attention que votre /dossier/de/destination ne soit pas dans votre home pour que les jobs puissent y avoir accès.

Note : J'ai pu créer mon image sur mon laptop avec Apptainer 1.1.8 (sur Ubuntu 22.04) et l'utiliser sur MUST avec Singularity 1.0.6-dev-rhel6 sans aucun problème noteIl faut reconnaître que c'est une première dans l'histoire, puisque Singularity n'est malheureusement que trop connu pour ses problèmes d'incompatibilité entre quasiment toutes ses versions et sous-versions. Comme quoi, il ne faut jamais désespérer.. L'avantage est qu'il n'y a pas besoin d'avoir les droits administrateurs pour créer une image Apptainer.