singularityのbind

singylarity結構便利でデフォルトでホームディレクトリと/tmpがコンテナにバインドされる。 とはいえ/mnt/以下にデータを書き出したい場合などは、singularityのコンテナに明示的に/mnt以下などをバインドする必要がある。

ちなみにバインドしなくてもシンボリックリンクでなんとかなるかなと思ったけど、それはsingularityの内部から解決することができなかった。

sylabs.io

bindの方法自体は↑のドキュメントにある感じで極めてシンプルで、 --bindの後ろにhost:containerの順でパスを書くとマウントされる。

$singularity run --bind /mnt/hdd1:/hdd1 hoge.sif

あんまし使っていないけどdockerと同じでread onlyにするフラグなどもあるらしい。

よくみたら環境変数SINGULARITY_BINDディレクトリをカンマ区切りでおくと自動的にバインドされるらしい。