About no space on /tmp
Thanks for the addition, @manabuishii !
To be honest I have never understood the difference between --tmp-outdir-prefix and --tmpdir-prefix - should we try to explain that?
I am not sure how this would help sort which would instead need a different TMPDIR shell environment variable within the VM - e.g. to use /var/tmp
TMPDIR could be sent through with TMPDIR=/var/tmp cwltool --preserve-environment TMPDIR foo.cwl although it would be a different folder if the tool is run inside VM/Docker.
If sort etc are run within an Docker image, then /tmp could either be part of the differential file system (fine) or (if the Dockerfile or docker command so declares) a volume (also fine). I am not sure how running cwltool on the OSX-side would ever use /tmp within the Docker VM as it would be as part of a docker run command that mounts volumes from the host for inputs and outputs, and which uses whatever docker image is provided in DockerRequirement?
You could override TMPDIR for tmp-hungry tools within the cwl file in a EnvVarRequirement - e.g.:
requirements:
EnvVarRequirement:
envDef:
TMPDIR: $(runtime.outdir)
This should in effect use --tmp-outdir-prefix as that is what cwltool has mapped in for outputs - but this would also be more portable across engines and deployments. You are however at mercy of the tool not overwriting the actual outputs and should not have over-inclusive glob patterns.
@kinow do we want to rework this into the new user guide? I am not sure of best process - but it would nice to clean out these merge requests that are for the old format of the user guide. Let me know what you think is best here.
Hi @swzCuroverse I had a read and the advice from @manabuishii in this PR looks useful. Not sure if anything has changed in cwltool, but if it's still correct, then maybe @manabuishii or somebody else could take a look if it can/needs be updated after @stain 's comments, and then review/merge.