====Singularity====
sudo権限がなくても使えるコンテナ。KEKCCではsingularityが利用できる。
→実はapptainerへのsymbolic linkが貼ってある
[[https://kekcc.kek.jp/service/kekcc/support/ja/container-guide/|KEKCC上のコンテナの案内]]
===コンテナの作成===
既存のコンテナを読み込む場合\\
例えばdocker hubのコンテナ[[https://hub.docker.com/r/picker24/t2kreweight_24_05/tags?page=&page_size=&name=&ordering=last_updated|例:T2KReweight]]を使用する場合
$ singularity pull --verbose t2kreweight_24_05.sif docker://picker24/t2kreweight_24_05:alma9
''hoge.sif''は作成するコンテナの名前。なんでも良い
注:KEKCCでは/tmpのクォータが小さくbuildが失敗する。一時ファイルの置き場を自分のhomeの下などにしてこれを回避する必要がある。\\
環境変数''SINGULARITY_TMPDIR''を設定すればOK。
===コンテナの中に入る===
shellでコンテナの環境が利用できる。''-B''オプションはコンテナ外のファイルをコンテナに見せる(bind)。
$ singularity shell t2kreweight_24_05.sif -B /path/to/src
===コンテナの編集===
コンテナは基本的にreadonlyだが、containerで開発をしたいこともあるはず。例えば[[https://git.t2k.org/nd280/wiki/nd280-wiki/-/wikis/Singularity-Containers#Using%20Singularity%20for%20Development%20Within%20a%20Writable%20Sandbox|ND280Software]](HighLAND)を使うとき
$ singularity build --sandbox development/ docker://git.t2k.org:8088/nd280/framework/nd280softwaremaster:centos7-13.28
で編集可能なコンテナ(sandbox)をカレントディレクトリのdevelop/以下に作成できる。開くには
$ singularity shell --writable development/