runはカスタムアクションが実行されます
CMD や ENTORYPOINT が実行されるe175733@amane$ singularity run ubuntu_20.04.sif
Singularity>
shellは shell を立ち上げることができます
e175733@amane$ echo $SHELL
/bin/zsh
e175733@amane$ singularity shell ubuntu_20.04.sif
Singularity> echo $SHELL
/bin/zsh
execはコンテナにやるのではなく、.sifイメージにe175733@amane$ pwd
/home/student/e17/e175733/slurm/pytorch
e175733@amane$ singularity exec ubuntu_20.04.sif pwd
/home/student/e17/e175733/slurm/pytorch
gcc、g++、make ができる環境の構築方法ですDockerfileとの違いです
FROM -> FromRUN -> %postCOPY -> %filesENV -> %environmentCMD -> %runscriptENTORYPOINT -> %startscripttest.defという名前で作成しますBootStrap: docker は Docker Hubからイメージを取得するという意味です%postは毎回記述する必要はなく、また&&などで繋げる必要はありませんBootStrap: docker
From: ubuntu:20.04
%post
apt-get update
apt-get -y upgrade
apt-get -y install build-essential vim
test.sifという名前のイメージで作成します--fakeroot は必須ですsingularity build --fakeroot test.sif test.defsingularity buildはdockerのbuildと違いキャッシュされない。そのため、build中にエラーが発生すると、また一からbuildを行う必要があります。そこで、ie-podmanからイメージを作成します。
ie-podmanはpodmanのwrapperなので、Dockerfileを作成しますFROM ubuntu:20.04
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y \
build-essential \
vim
Dockerfileを作成したらbuildします
ie-podman build -t test .UserNameで補完されますie-podman imagese175733@amane:) ie-podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/e175733_test latest 4921b38d4011 2 weeks ago 6.04 MB
sifファイルに変換します
ie-podman sif e175733_teste175733_test.sifが作成されますDockerfileを作成しますFROM ubuntu:20.04
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y \
build-essential \
vim
docker build -t test ./docker tag test:latest amane.ie.u-ryukyu.ac.jp:5000/e1757xx/test:latestdocker push amane.ie.u-ryukyu.ac.jp:5000/e1757xx/test:latestsingularity pull docker://amane.ie.u-ryukyu.ac.jp:5000/e1757xx/test:latest.sif ファイルができますSingularity を使ったイメージの作成としてMulti-Stage Buildsがあります(Dockerやie-podmanにもあります)。事前に作成したsifファイルをMulti-Stageで利用する際のDefinition Fileの書き方です。
test.sifを利用するBootStrap: localimageと指定することで、sifファイルを利用できますBootStrap: localimage
From: [test.sif FULL_PATH]
Stage: test
BootStrap: docker
From: ubuntu:20.04
%files from test
/usr/bin/gcc /usr/bin/gcc
コメント:画像を中央に配置する centerコマンドを有効に