Hello,
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 java
or 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 crunch
to root
(only necessary when I would use docker cp
), but nothing changed.
Finally, I have installed tree
through apt
, which was too installed to /usr/bin
and noticed that I can strangely use tree
through arvados-cwl-runner
and I can also see it using the aforementioned ls
method.
Is this expected behavior? Am I missing something concerning how arvados handles these specific images ? Thanks in advance.