...
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 | ||
---|---|---|
| ||
[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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
- Lustre na ostalim
- Apptainer
- Conda
- Pip