Skip to content

Commit b4c4c99

Browse files
committed
Merge branch 'master' of github.com:common-workflow-language/cwl-v1.1
2 parents 8a2b6e1 + 576ebfd commit b4c4c99

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

CommandLineTool.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ $graph:
5050
5151
## Changelog
5252
53+
* Clarify behavior around `ENTRYPOINT` and `CMD` in containers
5354
* Clarify documentation around `valueFrom` and `null` inputs.
5455
* Default values for some fields are now expressed in the schema.
5556
* When defining record types with `CommandInputRecordSchema`, fields of
@@ -701,8 +702,9 @@ $graph:
701702
extends: ProcessRequirement
702703
doc: |
703704
Indicates that a workflow component should be run in a
704-
[Docker](http://docker.com) container, and specifies how to fetch or build
705-
the image.
705+
[Docker](http://docker.com) or Docker-compatible (such as
706+
[Singularity](https://www.sylabs.io/) and [udocker](https://github.com/indigo-dc/udocker)) container environment and
707+
specifies how to fetch or build the image.
706708
707709
If a CommandLineTool lists `DockerRequirement` under
708710
`hints` (or `requirements`), it may (or must) be run in the specified Docker
@@ -727,6 +729,22 @@ $graph:
727729
generated command line represents a valid command within the runtime
728730
environment of the container.
729731
732+
A container image may specify an
733+
[ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint)
734+
and/or
735+
[CMD](https://docs.docker.com/engine/reference/builder/#cmd).
736+
Command line arguments will be appended after all elements of
737+
ENTRYPOINT, and will override all elements specified using CMD (in
738+
other words, CMD is only used when the CommandLineTool definition
739+
produces an empty command line).
740+
741+
Use of implicit ENTRYPOINT or CMD are discouraged due to reproducibility
742+
concerns of the implicit hidden execution point (For further discussion, see
743+
[https://doi.org/10.12688/f1000research.15140.1](https://doi.org/10.12688/f1000research.15140.1)). Portable
744+
CommandLineTool wrappers in which use of a container is optional must not rely on ENTRYPOINT or CMD.
745+
CommandLineTools which do rely on ENTRYPOINT or CMD must list `DockerRequirement` in the
746+
`requirements` section.
747+
730748
## Interaction with other requirements
731749
732750
If [EnvVarRequirement](#EnvVarRequirement) is specified alongside a

0 commit comments

Comments
 (0)