631 | | ==== apptainer ==== |
632 | | |
633 | | [Apptainer](https://apptainer.org/), anciennement !Singularity, simplifie la création et l'exécution de conteneurs. Le système permet l'encapsulation de composants logiciels pour la portabilité et la reproductibilité. |
634 | | L'un |
635 | | |
| 631 | ====Apptainer ==== |
| 632 | |
| 633 | [https://apptainer.org/ Apptainer] (anciennement !Singularity) simplifie la création et l'exécution de conteneurs. Le système permet l'encapsulation de composants logiciels pour la portabilité et la reproductibilité. |
| 634 | L'univers container de !HTCondor permet de soumettre des tâches utilisant |
| 635 | - soit des conteneurs préalablement construits sur vos machines à partir d'un fichier de définition : {{{[xxx@lpsc-cyy] apptainer build conteneur.sif conteneur.def}}} |
| 636 | - soit à partir de conteneurs préexistants dans des [https://docs.github.com/fr/packages/working-with-a-github-packages-registry/working-with-the-container-registry registres de conteneurs]. |
| 637 | |
| 638 | ====Un exemple d'utilisation de conteneur ==== |
| 639 | |
| 640 | **cowsay_deb.def** un fichier de définition du conteneur apptainer |
| 641 | {{{ |
| 642 | Bootstrap: docker |
| 643 | From: debian:latest |
| 644 | |
| 645 | %post |
| 646 | |
| 647 | apt-get -y update |
| 648 | apt-get -y install cowsay |
| 649 | |
| 650 | %environment |
| 651 | export LC_ALL=C |
| 652 | export PATH=/usr/games:$PATH |
| 653 | |
| 654 | %runscript |
| 655 | cowsay "$*" |
| 656 | |
| 657 | %labels |
| 658 | Author Fabulous |
| 659 | }}} |
| 660 | |
| 661 | **apptainer.submit** Le fichier pour de définition de la tâche à soumettre |
| 662 | {{{ |
| 663 | #universe = container is optional |
| 664 | universe |
| 665 | = container |
| 666 | # utilisation d'un conteneur construit localement |
| 667 | container_image = ./cowsay.sif |
| 668 | |
| 669 | #utilisation d'un conteneur préexistant dans un dépôt |
| 670 | #container_image = docker://ghcr.io/apptainer/lolcow |
| 671 | |
| 672 | arguments = moo ! |
| 673 | |
| 674 | should_transfer_files = YES |
| 675 | when_to_transfer_output = ON_EXIT |
| 676 | |
| 677 | output = out.$(Process) |
| 678 | error = err.$(Process) |
| 679 | log = log.$(Process) |
| 680 | |
| 681 | request_cpus = 1 |
| 682 | request_memory = 1024M |
| 683 | request_disk = 10240K |
| 684 | |
| 685 | queue 1 |
| 686 | }}} |