...
Najbitnija komanda apptainera je komanda build
kojom se kontejneri mogu izgraditi u obliku:
- image - slika ili oblik koji podržava samo čitanje, namijenjen finalnoj verziji kontejnera
- sandbox - direktorij ili oblik koji podržava i pisanje, namijenjen razvoju kontejnera
...
U prvom slučaju, pri izgradnji kontejnera komandom build
moramo navesti opciju build --sandbox
koja će generirati kontejner u obliku direktorija ubuntu_20.04
:
...
Novonastali sandbox kontejner možemo modificirati korištenjem opcije shell --writable
kojom otvaramo ljusku unutar kontejnera sa svim korisničkim knjižnicama koje doprema.
...
Code Block | ||
---|---|---|
| ||
# ispis definicijske datoteke [korisnik@kompjuter:~] $ cat ubuntu_20.04.def Bootstrap: docker From: ubuntu:20.04 %post apt update apt install python3-pip -y # izgradnja imagea iz definicijske datoteke [korisnik@kompjuter:~] $ apptainer build ubuntu_20.04.sif ubuntu_20.04.def ... INFO: Creating SIF file... INFO: Build complete: ubuntu_20.04.sif # sadržaj trenutnog direktorija [korisnik@kompjuter:~] $ ls -l total 154504 drwxr-xr-x 18 korisnik korisnik 4096 svi 23 09:51 ubuntu_20.04 -rw-r--r-- 1 korisnik korisnik 87 svi 23 10:22 ubuntu_20.04.def -rwxr-xr-x 1 korisnik korisnik 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
...
Code Block | ||
---|---|---|
| ||
# interaktivna sjednica u kontejneru [korisik@kompjuter] $ sudo apptainer shell --writable data_stack_sandbox/ INFO: /etc/singularity/ exists; cleanup by system administrator is not complete (see https://apptainer.org/docs/admin/latest/singularity_migration.html) WARNING: Skipping mount /etc/localtime [binds]: /etc/localtime doesn't exist in container Apptainer> apt update ... Reading state information... Done 10 packages can be upgraded. Run 'apt list --upgradable' to see them. # instalacija pip3 Apptainer> apt install python3-pip -y ... Running hooks in /etc/ca-certificates/update.d... done. # instalacija pythnpython knjižnica Apptainer> pip3 install numpy scipy pandas matplotlib ipython ... Successfully installed asttokens-2.2.1 backcall-0.2.0 contourpy-1.0.7 cycler-0.11.0 decorator-5.1.1 executing-1.2.0 fonttools-4.39.4 ipython-8.13.2 jedi-0.18.2 kiwisolver-1.4.4 matplotlib-3.7.1 matplotlib-inline-0.1.6 numpy-1.24.3 packaging-23.1 pandas-2.0.1 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 pillow-9.5.0 prompt-toolkit-3.0.38 ptyprocess-0.7.0 pure-eval-0.2.2 pygments-2.15.1 pyparsing-3.0.9 python-dateutil-2.8.2 pytz-2023.3 scipy-1.10.1 six-1.16.0 stack-data-0.6.2 traitlets-5.9.0 tzdata-2023.3 wcwidtWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv h-0.2.6 # ispis verzija knjižnica Apptainer> pip3 freeze ... ipython==8.12.2 matplotlib==3.7.1 matplotlib-inline==3.7.1 numpy==1.24.3 pandas==2.0.1 scipy==1.10.1 ... |
...
- Lustre
- Apptainer
- Službena dokumentacija - za detalje o raznim komandama
- Originalni članak - Zašto je Singularity/Apptainer uopće nastao?
- Pip
- Službena dokumentacija - za detalje o raznim komandama pipa
- RealPython tutorial - super tutorial za uvod u pip
- Conda
- Službena dokumentacija - za detalje o raznim komandama conde
- Isabella wiki - naš stari wiki s najkorištenijim komandama i njihovim opisom