Hey Sheena!
I think it has to do with the way you are converting from Docker --> Singularity - I'm not actually sure what the steps do that first run the image (with picard-export /bin/true) and then import that subset into a Singularity image. My guess is that for the first line, you are only exporting a subset of content, and the image fails because it doesn't have a proper operating system. Is there any reason you wouldn't just export the entire docker image into the new singularity?
For a sanity check, I built the same image completely in Singularity - the SIngularity file looks like this:
Bootstrap: docker
From: anapsix/alpine-java:jdk7
%post
%environment
PICARD_INSTALL_DIR=/opt
version=1.113
%runscript
cd /opt
# No arguments
if [ $# -eq 0 ]
then
exec java -jar "$@"
else
exec java -jar /opt/CalculateHsMetrics.jar
fi
and then generation looks like this:
singularity create picard.img
sudo singularity bootstrap picard.img Singularity
./picard.img
(the help for the jar comes up)
So - there are a few options here:
- build the entire thing as I did above, in Singularity
- bootstrap directly from the Docker image (aka, have that Dockerfile hosted on Docker Hub or similar). Assuming your username is sheena, and the image is picard, you would do:
singularity pull docker://sheena/picard
The last option is to try the import like you did above, but just do the entire image.
Hopefully one of those will work for you!
Best,
Vanessa