welcome: please sign in
location: SingularityContainerBauen

Bauen eines Singulartiy Container

Unter Bauen eines Containers versteht man das Zusammenstellen eines Singularity Containers aus verschiedensten Quellen. Das Tool zum Containerbau kann außerdem verwendet werden, um zwischen verschiedenen Containerformaten zu konvertieren. Neben dem Beziehen der Container aus verschiedenen Quellen kann man diesen auch mit Hilfe eines sog. Definition Files von Grund auf erstellen.

build

$ singularity build --OPTION /Zielpfad/CONTAINER.sif QUELLE

Quellen für Input

Containerformate

Ein read-only Container im SIF-Format lässt sich nicht mehr abändern, ohne eben diese Konvertierung durchzuführen. Verändert man den Container, so muss aus darauf geachtet werden, dass die Installation nicht mit den Metadaten des Containers und der im Defintion File abgegebenen Beschreibungen im Konflikt steht. Um Reproduzierbarkeit zu gewährleisten sollte man read-only Container im SIF-Format bauen und bei Änderungswünschen mittels Definition File auf dem Container aufbauend einen neuen Bauen.

Optionen

build
--force - löscht und überschreibt existierenden Container, ohne Nutzerbestätigung
--notest - baut den Container ohne die %test-Section zu berücksichtigen (bspw. bei fehlender Hardware)
--sandbox oder -s - baut einen Container als Verzeichnis mit Schreibrechten
--section - Gibt an welche Sections aus einem Definition File zum Bau eines Containers genutzt werden sollen (all,none,setup,post,files,environment,test,labels). Generell werden alle im Definition File angegebenen Sections beim Buildprozess berücksichtigt.

--remote - Container wird an anderer Stelle gebaut, per Standard beim Sylabs Remote Builder

--detached - in Verbindung mit --remote, Container wird ohne Terminal-Output gebaut
--builder - in Verbindung mit --remote, Container kann von einem externen Buildservice gebaut werden (URL angeben)
--update - anstatt eines neuen Containers wird in einen vorhandenen (Sandbox only) Container gebaut, Header des Definition File wird übersprungen

Buildservice statt Root

Zum Bauen von Containern, speziell aus einem Definition File, werden Root-Rechte auf einem Linux-System benötigt. Wenn kein Zugriff auf ein Linuxsystem besteht, Alternativen wie virtuelle Maschinen fehlen oder nicht-administrativen Nutzern keine erweiterten Privilegien eingeräumt werden können, benötigt man eine Alternative.

Bauen über Weboberfläche

Bauen über Kommandozeilenbefehl

$ singularity remote login [SylabsCloud]

$ singularity build --remote CONTAINER.sif DEFINTIONSFILE.def

SingularityContainerBauen (zuletzt geändert am 2019-08-26 08:49:26 durch thunert@cbs.mpg.de)