DockerRequirement vs ContainerRequirement


Docker is widely known and adopted as a container engine and cwltool supports a growing number of container engines (e.g. udocker, podman).

This post is about a philosophical change request in the CWL standard that would lead to renaming DockerRequirement to ContainerRequirement (including the underlying fields) in a future version of CWL (with backwards compatibility).

What are your feelings about this ?

Hello Fabrice!

For CWL, Docker in DockerRequirement refers to the docker format of software containers. The choice of container runtime (singularity, podman, docker, udocker, etc…) is up to the CWL engine.

I’m okay with adding Container as a synonym for DockerRequirement, yes.

Here are related discussions: Generalised ContainerRequirement · Issue #80 · common-workflow-language/common-workflow-language · GitHub and review Open Container Initiative (OCI) v1.0 release candidates · Issue #384 · common-workflow-language/common-workflow-language · GitHub

I would quite like to redefine our Container support to reference a container standard (e.g. OCI) but it’s complicated because OCI image format is too low level. What we probably want is to reference OCI Image Distribution which describes the protocol for identifying and fetching container images.

However this requires going pretty deep into the current state of the OCI standards and their current state of support and adoption for the kinds of thing CWL is used for, and nobody has had time / volunteered to do this research project.