When a -B / --bind option is used with singularity build, the bind mount target must be present in the image before the %post step executes.
This makes it a little awkward to use -B with singularity build, as generally a well-known existing path must be used (e.g. /mnt), or directories must be created in the rootfs via a %setup block.
It's not entirely straightforward to implement this sensibly.
- Needs to work across all runtime modes... setuid, kernel overlay / fuse overlay, etc.
- Should the directory be removed after
%post if it didn't exist before %post.
- What happens if we bind a directory, but it is also created in
%post... or similar?
When a
-B / --bindoption is used withsingularity build, the bind mount target must be present in the image before the%poststep executes.This makes it a little awkward to use
-Bwithsingularity build, as generally a well-known existing path must be used (e.g./mnt), or directories must be created in the rootfs via a%setupblock.It's not entirely straightforward to implement this sensibly.
%postif it didn't exist before%post.%post... or similar?