Would it be non-disruptive to use a newer base image? GNU coreutils df (which is used internally by some bioinformatics utilities, such as MAKER) from Debian jessie is not aware of mount namespaces; rather, it appears hardcoded to derive mount info from /etc/mtab---which isn't created when a biocontainers image is run under Singularity. Consequently, df fails:
$ singularity exec --containall --cleanenv docker://bitnami/minideb:jessie df
df: cannot read table of mounted file systems: No such file or directory
$ singularity exec --bind /usr/bin/strace --containall --cleanenv docker://bitnami/minideb:jessie strace df 2>&1 | grep '^open'
...
open("/etc/mtab", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
df versions from stretch and buster are aware of mount namespaces, and instead read /proc/self/mounts:
$ singularity exec --containall --cleanenv docker://bitnami/minideb:buster df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 16384 12 16372 1% /
...
Would it be non-disruptive to use a newer base image? GNU coreutils df (which is used internally by some bioinformatics utilities, such as MAKER) from Debian jessie is not aware of mount namespaces; rather, it appears hardcoded to derive mount info from /etc/mtab---which isn't created when a biocontainers image is run under Singularity. Consequently, df fails:
df versions from stretch and buster are aware of mount namespaces, and instead read /proc/self/mounts: