Skip to content

Commit f166660

Browse files
tetrongeoffjentry
authored andcommitted
Discussion about ENTRYPOINT and CMD. (#12)
1 parent 6fe656c commit f166660

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

CommandLineTool.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -701,8 +701,9 @@ $graph:
701701
extends: ProcessRequirement
702702
doc: |
703703
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.
704+
[Docker](http://docker.com) or Docker-compatible (such as
705+
[Singularity](https://www.sylabs.io/) and [udocker](https://github.com/indigo-dc/udocker)) container environment and
706+
specifies how to fetch or build the image.
706707
707708
If a CommandLineTool lists `DockerRequirement` under
708709
`hints` (or `requirements`), it may (or must) be run in the specified Docker
@@ -727,6 +728,22 @@ $graph:
727728
generated command line represents a valid command within the runtime
728729
environment of the container.
729730
731+
A container image may specify an
732+
[ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint)
733+
and/or
734+
[CMD](https://docs.docker.com/engine/reference/builder/#cmd).
735+
Command line arguments will be appended after all elements of
736+
ENTRYPOINT, and will override all elements specified using CMD (in
737+
other words, CMD is only used when the CommandLineTool definition
738+
produces an empty command line).
739+
740+
Use of implicit ENTRYPOINT or CMD are discouraged due to reproducibility
741+
concerns of the implicit hidden execution point (For further discussion, see
742+
[https://doi.org/10.12688/f1000research.15140.1](https://doi.org/10.12688/f1000research.15140.1)). Portable
743+
CommandLineTool wrappers in which use of a container is optional must not rely on ENTRYPOINT or CMD.
744+
CommandLineTools which do rely on ENTRYPOINT or CMD must list `DockerRequirement` in the
745+
`requirements` section.
746+
730747
## Interaction with other requirements
731748
732749
If [EnvVarRequirement](#EnvVarRequirement) is specified alongside a

0 commit comments

Comments
 (0)