DockerCommandStep

open class DockerCommandStep : BuildStep
fun BuildSteps.dockerCommand(init: DockerCommandStep.() -> Unit): DockerCommandStep

A build step for a generic docker command runner (can run Docker build, push, other...)

Example. Adds a Docker Build build step with a source as Dockerfile located in the checkout directory with extra Docker command line argument.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        dockerCommand {
            name = "My Docker step"
            commandType = build {
                source = file {
                    path = "my-docker/Dockerfile"
                }
                commandArgs = "--pull"
            }
        }
} }

Example. Adds a Docker Build build step with a URL as Dockerfile with extra platform settings and images names and tags provided (using parameter reference).

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        dockerCommand {
            name = "My Docker step"
            commandType = build {
                source = url {
                    url = "https://my.repo.org/files/Dockerfile"
                }
                platform = DockerCommandStep.ImagePlatform.Linux
                namesAndTags = """
                    imageName:%myimage.version%
                    otherImage:%myimage.version%
                """.trimIndent()
            }
        }
} }

Example. Adds a Docker Build build step with a source as Dockerfile content provided explicitly in the DSL configuration with extra platform settings and images names and tags provided.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        dockerCommand {
            name = "My Docker step"

            commandType = build {
                source = content {
                    content = """
                        Dockerfile content
                    """.trimIndent()
                }
                platform = DockerCommandStep.ImagePlatform.Linux
                namesAndTags = "myImage:1.0"
            }
        }
} }

Example. Adds a Docker Push build step with images names and tags provided (using parameter reference). Additional property for not removing the image after the step is set up. This step will we executed only if build status is sucessfull for previous build steps and extra condition is met.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        dockerCommand {
            name = "My Docker push step"

            executionMode = BuildStep.ExecutionMode.RUN_ON_SUCCESS
            conditions {
                equals("teamcity.build.branch", "release")
            }

            commandType = push {
                namesAndTags = "imageName:%myimage.version%"
                removeImageAfterPush = false
            }
        }
} }

Example. Adds a Docker Other build step with a docker command provided and Docker command additional arguments. Custom working directory is provided.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        dockerCommand {
            name = "My Docker other (tag) step"

            commandType = other {
                subCommand = "tag"
                workingDir = "docker/images"
                commandArgs = "source target:%myimage.version%"
            }
        }
} }

See also

Constructors

Link copied to clipboard
fun DockerCommandStep(init: DockerCommandStep.() -> Unit)
Link copied to clipboard
fun DockerCommandStep()

Types

Link copied to clipboard
sealed class CommandType : CompoundParam<DockerCommandStep.CommandType>
Link copied to clipboard
enum ImagePlatform : Enum<DockerCommandStep.ImagePlatform>

Docker image platforms

Functions

Link copied to clipboard
fun booleanParameter(    customName: String? = null,     trueValue: String? = "true",     falseValue: String? = "false"): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun build(init: DockerCommandStep.CommandType.Build.() -> Unit = {}): DockerCommandStep.CommandType.Build

Run "docker build" command

Link copied to clipboard
fun clear()
Link copied to clipboard
fun clearConditions()

Deletes all configured build step conditions

Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun conditions(init: BuildStepConditions.() -> Unit = {})
Link copied to clipboard
fun <T : Parametrized> copyParamsTo(target: T): T

Copies parameters of this object to the specified target

Link copied to clipboard
open fun create(): BuildStep

Creates an instance of this build step via reflection using a no argument constructor, used during copying. Throws an error if this class doesn't have a default constructor. Subclasses can override it to create an instance without using a default constructor.

Link copied to clipboard
fun doubleParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(customName: String? = null, mapping: Map<E, String?>? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun findRawParam(paramName: String): Parameter?
Link copied to clipboard
fun hasParam(paramName: String): Boolean
Link copied to clipboard
fun intParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun other(init: DockerCommandStep.CommandType.Other.() -> Unit = {}): DockerCommandStep.CommandType.Other

Run a specified docker command

Link copied to clipboard
fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard
fun push(init: DockerCommandStep.CommandType.Push.() -> Unit = {}): DockerCommandStep.CommandType.Push

Run "docker push" command

Link copied to clipboard
fun removeRawParam(paramName: String)
Link copied to clipboard
open fun stringParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun validate(consumer: ErrorConsumer)

Validates this object and reports found errors to the provided consumer

Properties

Link copied to clipboard
var commandType: <ERROR CLASS>

Specifies the type of the command, at the moment "build", "push", "other"

Link copied to clipboard
var conditions: BuildStepConditions

Optional collection of build step execution conditions

Link copied to clipboard
var enabled: Boolean = true

Specifies whether the step is enabled, true by default

Link copied to clipboard
var executionMode: BuildStep.ExecutionMode

Build step execution mode

Link copied to clipboard
var id: String? = null

Optional id of the step. Usually the id is not required, however if a build configuration inherits from a template and wants to override a build step defined there, then both steps should have the same id.

Link copied to clipboard
var name: String

Build step name

Link copied to clipboard
val params: List<Parameter>
Link copied to clipboard
var type: String

Build step type