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
-> From
RUN
-> %post
COPY
-> %files
ENV
-> %environment
CMD
-> %runscript
ENTORYPOINT
-> %startscript
test.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.def
singularity 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 images
e175733@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_test
e175733_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:latest
docker push amane.ie.u-ryukyu.ac.jp:5000/e1757xx/test:latest
singularity 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コマンドを有効に