I have run into a specific problem regarding the execution of CWL workflows on Arvados. I am currently using arvbox for local testing and trying to run workflows with
basecommand being either
python. I have followed the guide to set up a docker image based on the
arvados/jobs image, extended this image by installing openjdk-11 and commited it. Then I go to my workflow and add the hint at the end to pull the image and use it.
What is weird is that
cwltool would find java (always with the docker requirement enabled in the hints), but
arvados-cwl-runner does not. I stripped down my CWL’s to only run
java -version, in which case I still get the message that
java was not found in the $PATH (same even if I use
/usr/bin/java as base command). Note that of course I can see java through the docker shell.
Then I took it one step further and added some simple files to the docker instances filesystem at
/usr/bin. I created a workflow running
ls -la /usr/bin and as output (in a file correctly uploaded to
keep) I got every file in that directory, except for the files I added (oh, and java!). I tried making them executable, giving them 777 permissions, changing the owner from
root (only necessary when I would use
docker cp), but nothing changed.
Finally, I have installed
apt, which was too installed to
/usr/bin and noticed that I can strangely use
arvados-cwl-runner and I can also see it using the aforementioned
Is this expected behavior? Am I missing something concerning how arvados handles these specific images ? Thanks in advance.