The davidsongroup/jaffa:2.5 container fails under Singularity/Apptainer because the pipeline writes to absolute root-level paths, which are read-only in Singularity.
Issues encountered:
run_check stage writes to /checks (echo "..." > /checks) — fails with Read-only file system
minimap2_transcriptome stage writes output to /<input_basename>/<input_basename>.paf — an absolute root path. Even with --writable-tmpfs, this fills the small tmpfs overlay (No space left on device)
Root cause:
Bpipe resolves output paths relative to / instead of the working directory. In Docker this may works because the filesystem is fully writable. In Singularity the root filesystem is read-only by default, and --writable-tmpfs only provides a small RAM-backed overlay unsuitable for real data output.
Environment:
Singularity 3.11.3 on HPC (NCI Gadi)
davidsongroup/jaffa:2.5 pulled via Nextflow
JAFFA 2.5, bpipe 0.9.13
Workaround:
Using --writable-tmpfs plus manually symlinking root-level paths back to the working directory before running bpipe:
mkdir -p "$PWD/${input_base}"
ln -sf "$PWD/${input_base}" /${input_base}
ln -sf "$PWD/checks" /checks
Suggestion:
Could the pipeline use relative paths (or respect jaffa_output) for intermediate files instead of writing to absolute root paths? This would make the container Singularity-compatible out of the box.
The davidsongroup/jaffa:2.5 container fails under Singularity/Apptainer because the pipeline writes to absolute root-level paths, which are read-only in Singularity.
Issues encountered:
run_check stage writes to /checks (echo "..." > /checks) — fails with Read-only file system
minimap2_transcriptome stage writes output to /<input_basename>/<input_basename>.paf — an absolute root path. Even with --writable-tmpfs, this fills the small tmpfs overlay (No space left on device)
Root cause:
Bpipe resolves output paths relative to / instead of the working directory. In Docker this may works because the filesystem is fully writable. In Singularity the root filesystem is read-only by default, and --writable-tmpfs only provides a small RAM-backed overlay unsuitable for real data output.
Environment:
Singularity 3.11.3 on HPC (NCI Gadi)
davidsongroup/jaffa:2.5 pulled via Nextflow
JAFFA 2.5, bpipe 0.9.13
Workaround:
Using --writable-tmpfs plus manually symlinking root-level paths back to the working directory before running bpipe:
mkdir -p "$PWD/${input_base}"
ln -sf "$PWD/${input_base}" /${input_base}
ln -sf "$PWD/checks" /checks
Suggestion:
Could the pipeline use relative paths (or respect jaffa_output) for intermediate files instead of writing to absolute root paths? This would make the container Singularity-compatible out of the box.