Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

kombinacijama broja direktorija (1-1000) i datoteka (1-100) koje

zajedno sadrže 10GB podataka. Crne crtane linije povezuju točke

s istim
brojem datoteka.

Python i virtualna okruženja

...

Code Block
languagebash
[korisnik@kompjuter] $ apptainer build ubuntu_20.04.sif docker://ubuntu:20.04
... output izgradnje koji završava s...
INFO:    Creating SIF file...

[korisnik@kompjuter] $ ls -lrt
total 27100
-rwxr-xr-x 1 korisnik korisnik 27746304 svi  23 08:47 ubuntu_20.04.sif

...

Code Block
[korisnik@kompjuter] $ cat ubuntu_20.04.def 
Bootstrap: docker
From: ubuntu:20.04

%post
  apt update
  apt install python3-pip -y


[korisnik@kompjuter] $ apptainer build ubuntu_20.04.sif ubuntu_20.04.def 
...
INFO:    Creating SIF file...
INFO:    Build complete: ubuntu_20.04.sif

[korisnik@kompjuter] $ ls -l
total 154504
drwxr-xr-x 18 marko marko      4096 svi  23 09:51 ubuntu_20.04
-rw-r--r--  1 marko marko        87 svi  23 10:22 ubuntu_20.04.def
-rwxr-xr-x  1 marko marko 158195712 svi  23 10:34 ubuntu_20.04.sif

.

S obzirom da je instalacija u primjeru veoma jednostavna i oslanja se na izvorni upravitelj knjižnica apt, jedino potrebno poglavlje je %post kojim se izvršavaju komande nakon izgradnje osnovnog kontejnera.

...

Dodatne detalje o ovim funkcionalnostima možete naći na službenim stranicama i našem wikiju Isabelle.

Korištenje kontejnera - exec/run

...

Izvršne datoteke koje su dostupne kroz varijablu okoliša PATH u kontejneru mogu se pozvati korištenjem komande exec. Ispod se nalaze primjeri ispisivanja verzije pythona na korisničkom računalu naspram kontejnera:

Code Block
[korisnik@kompjuter] $ python3 --version
Python 3.9.2

[korisnik@kompjuter] $ apptainer exec ubuntu_20.04.sif python3 --version
INFO:    /etc/singularity/ exists; cleanup by system administrator is not complete (see https://apptainer.org/docs/admin/latest/singularity_migration.html)
INFO:    underlay of /etc/localtime required more than 50 (86) bind mounts
Python 3.8.10

...

U slučaju da koristimo samo jednu aplikaciju, komanda run je prikladnija jer se u tom slučaju kontejner može pozivati kao izvršna datoteka. Ova funkcionalnost omogućuje se poglavljem %runscript u definicijskoj datoteci pri izgradnji imagea.

Ispod se nalazi primjer u kojem je izvršna naredba python3 zadana kao naredba za direktno izvršavanje (napomena: $@ je bash varijabla koja odgovara ulaznim argumentima):

Code Block
[korisnik@kompjuter] $ cat ubuntu_20.04.def 
Bootstrap: docker
From: ubuntu:20.04

%post
  apt update
  apt install python3-pip -y

%runscript
  exec python3 $@

[korisnik@kompjuter] $ apptainer build ubuntu_20.04.sif ubuntu_20.04.def
...
INFO:    Build complete: ubuntu_20.04.sif

[korisnik@kompjuter] $ ./ubuntu_20.04.sif --version
Python 3.8.10

Primjer
Anchor
primjeri
primjeri


Image Added

Slika 3. Workflow za izradu i korištenje kontejnera. Kombinacije komandi

poput import & bootstrap su u novijim verzijama zamijenjene

komandom build (Figure 1 u originalnom članku)

Kako dalje?

...

Kako dalje? 
Anchor
reference
reference