I have built a singularity/apptainer container that I am trying to deploy in a cluster computing environment. The container is built by pulling from a docker image with the following command:
apptainer build --fakeroot crispresso2.sif docker://pinellolab/crispresso2
When built, this container functions perfectly in a local development environment but it produces errors (see below) when run on the cluster. The same errors occur regardless of whether the container is built in the local development environment or on the cluster.
I’ve tried a number of different approaches to building this container and everything has failed for one reason or another. I would like to start by figuring out why a container that works in one environment will not work in a different environment and going from there. Any input on what is going wrong here would be deeply appreciated.
Errors produced:
When run interactively:
user@cluster[]node/directory$ apptainer shell crispresso2.sif
Apptainer>CRISPResso -h
Produces:
bash: CRISPResso: command not found
When run non-interactively:
user@cluster[]node/directory$ apptainer run crispresso2_latest.sif CRISPResso -h
Produces:
Traceback (most recent call last):
File "/CRISPResso2/CRISPResso2_router.py", line 20, in <module>
sb.call(["CRISPResso"]+ sys.argv[2:])
File "/usr/lib/python2.7/subprocess.py", line 172, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 394, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1047, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory