I read that there is interim support for podman (docker replacement) in CWL.
CWL, as a standard, does not specify that only certain software container engines are supported. So from the perspective of the standard there is nothing to prevent any CWL aware runner using podman instead of docker, singularity, udocker , and so on.
If this is successful then cwltool can be enhanced to use podman if docker is not available.
Are there alternative way to get the latest CWL (1.2?) without building lots of packages ? I am running CentOS 8.2
The most recommend method is to make a Python 3 virtualenv and to pip install cwltool inside of it. I’m not able to personally support other methods on installing the CWL reference runner; perhaps others can.
I did a simple test using podman version 2.0.6 (and I linked /usr/bin/podman to /usr/local/bin/docker) on Debian with the CWL v1.0 conformance tests against cwltool version 3.0.20200807132242 and “175 tests passed, 22 failures”. This might be enough for your needs.
Seems the podman+cwltool conformance tests failures were related to permissions, so I re-ran as the root user and all the CWL v1.0 conformance tests passed. Likewise for the CWL v1.1 and CWL v1.2 conformance tests.
We got everything running with podman (on jupyterhub/kubernetes) with a small “hack” line
with:
if not os.path.exists(source):
os.makedirs(source)
os.chmod(source, 0o777)
This fixes the issue with the permissions on the volumes. I’ve been wondering if you guys would find it acceptable to fully support podman as a replacement for docker.