The composition step runs a Docker Composition as a means to execute finite commands in a more complex interaction of services.
||The free-text display name of the step.||Optional|
||A basic, free-text description of the step.||Optional|
||The directory in which to search for the composition file. It can be an explicit path in the container’s file system, or a variable that references another step.
The default is
||The composition you want to run. It can be an inline YAML definition, a path to a composition file on the file system, or the logical name of a composition stored in the Codefresh system.||Required|
||The definition of the service to monitor.||Required|
||environment that will be accessible to the container||Optional|
||A set of environment variables to substitute in the composition.||Optional|
||If a step fails, and the process is halted. The default value is
||Define a set of conditions which need to be satisfied in order to execute this step.
You can find more information in the Conditional Execution of Steps article.
||Define operations to perform upon step completion using a set of predefined Post-Step Operations.||Optional|
Composition vs. Composition Candidates:
For Codefresh to determine if the step and operations were successfully executed, you must specify at least one
composition_candidate is a single service component of the normal Docker composition that is monitored for a successful exit code, and determines the outcome of the step. During runtime, the
composition_candidate is merged into the specified
composition, and is monitored for successful execution.
composition already contains a service with the same name as the
composition_candidate, the two service definitions are combined, with preference given to the
For example, we create a new Codefresh composition named ‘test_composition’:
Now we want to reuse this composition during our build for testing purposes.
We can add the following composition step to our
codefresh.yml file, and define the composition step so that
test_service always uses the latest image that was built.
In the above example, both
composition_candidates define a service named
test_service. After merging these definitions,
test_service will maintain the
command that was defined in the original composition, but will refer to the image built by the step named