生成、标记、推送或运行 Docker 映像,或运行 Docker 命令。 将此任务与 Docker 或 Azure 容器注册表配合使用。
注释
Docker@2 是此任务的较新版本,它通过删除可作为参数传递给命令的输入来简化任务。
语法
# Docker v1
# Build, tag, push, or run Docker images, or run a Docker command.
- task: Docker@1
inputs:
# Container Registry
#containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when command != logout. Container registry type. Default: Azure Container Registry.
#dockerRegistryEndpoint: # string. Optional. Use when containerregistrytype = Container Registry && command != logout. Docker registry service connection.
#azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry && command != logout. Azure subscription.
#azureContainerRegistry: # string. Optional. Use when containerregistrytype = Azure Container Registry && command != logout. Azure container registry.
# Commands
#addBaseImageData: true # boolean. Add base image metadata to image(s). Default: true.
command: 'Build an image' # 'Build an image' | 'Tag image' | 'Push an image' | 'Run an image' | 'login' | 'logout'. Required. Command. Default: Build an image.
#dockerFile: '**/Dockerfile' # string. Required when command = Build an image || command = build. Dockerfile. Default: **/Dockerfile.
#arguments: # string. Optional. Use when command != login && command != logout. Arguments.
#pushMultipleImages: false # boolean. Optional. Use when command = Push an image || command = push. Push multiple images. Default: false.
#tagMultipleImages: false # boolean. Optional. Use when command = Tag image || command = tag. Tag multiple images. Default: false.
#imageName: '$(Build.Repository.Name):$(Build.BuildId)' # string. Required when command = Build an image || command = build || command = Run an image || command = run || pushMultipleImages = false || tagMultipleImages = false. Image name. Default: $(Build.Repository.Name):$(Build.BuildId).
#imageNamesPath: # string. Required when tagMultipleImages = true || pushMultipleImages = true. Image names path.
#qualifyImageName: true # boolean. Optional. Use when command = Build an image || command = build || command = Tag image || command = tag || command = Push an image || command = push || command = Run an image || command = run. Qualify image name. Default: true.
#qualifySourceImageName: false # boolean. Optional. Use when command = Tag image || command = tag. Qualify source image name. Default: false.
#includeSourceTags: false # boolean. Optional. Use when command = Build an image || command = build || command = Tag image || command = tag || command = Push an image || command = push. Include source tags. Default: false.
#includeLatestTag: false # boolean. Optional. Use when command = Build an image || command = build. Include latest tag. Default: false.
#addDefaultLabels: true # boolean. Optional. Use when addDefaultLabels = false. Add default labels. Default: true.
#useDefaultContext: true # boolean. Optional. Use when command = Build an image || command = build. Use default build context. Default: true.
#buildContext: # string. Optional. Use when useDefaultContext = false. Build context.
#imageDigestFile: # string. Optional. Use when command = Push an image || command = push. Image digest file.
#containerName: # string. Optional. Use when command = Run an image || command = run. Container name.
#ports: # string. Optional. Use when command = Run an image || command = run. Ports.
#volumes: # string. Optional. Use when command = Run an image || command = run. Volumes.
#envVars: # string. Optional. Use when command = Run an image || command = run. Environment variables.
#workingDirectory: # string. Optional. Use when command = Run an image || command = run. Working directory.
#entrypointOverride: # string. Optional. Use when command = Run an image || command = run. Entry point override.
#containerCommand: # string. Optional. Use when command = Run an image || command = run. Container command.
#runInBackground: true # boolean. Optional. Use when command = Run an image || command = run. Run in background. Default: true.
restartPolicy: 'no' # 'no' | 'onFailure' | 'always' | 'unlessStopped'. Required when runInBackground = true. Restart policy. Default: no.
#maxRestartRetries: # string. Optional. Use when runInBackground = true && restartPolicy = onFailure. Maximum restart retries.
# Advanced Options
#dockerHostEndpoint: # string. Optional. Use when command != login && command != logout. Docker host service connection.
#enforceDockerNamingConvention: true # boolean. Optional. Use when command != login && command != logout. Force image name to follow Docker naming convention. Default: true.
#memoryLimit: # string. Optional. Use when command != login && command != logout. Memory limit.
# Docker v1
# Build, tag, push, or run Docker images, or run a Docker command.
- task: Docker@1
inputs:
# Container Registry
#containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when command != logout. Container registry type. Default: Azure Container Registry.
#dockerRegistryEndpoint: # string. Optional. Use when containerregistrytype = Container Registry && command != logout. Docker registry service connection.
#azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry && command != logout. Azure subscription.
#azureContainerRegistry: # string. Optional. Use when containerregistrytype = Azure Container Registry && command != logout. Azure container registry.
# Commands
command: 'Build an image' # 'Build an image' | 'Tag image' | 'Push an image' | 'Run an image' | 'login' | 'logout'. Required. Command. Default: Build an image.
#dockerFile: '**/Dockerfile' # string. Required when command = Build an image || command = build. Dockerfile. Default: **/Dockerfile.
#arguments: # string. Optional. Use when command != login && command != logout. Arguments.
#pushMultipleImages: false # boolean. Optional. Use when command = Push an image || command = push. Push multiple images. Default: false.
#tagMultipleImages: false # boolean. Optional. Use when command = Tag image || command = tag. Tag multiple images. Default: false.
#imageName: '$(Build.Repository.Name):$(Build.BuildId)' # string. Required when command = Build an image || command = build || command = Run an image || command = run || pushMultipleImages = false || tagMultipleImages = false. Image name. Default: $(Build.Repository.Name):$(Build.BuildId).
#imageNamesPath: # string. Required when tagMultipleImages = true || pushMultipleImages = true. Image names path.
#qualifyImageName: true # boolean. Optional. Use when command = Build an image || command = build || command = Tag image || command = tag || command = Push an image || command = push || command = Run an image || command = run. Qualify image name. Default: true.
#qualifySourceImageName: false # boolean. Optional. Use when command = Tag image || command = tag. Qualify source image name. Default: false.
#includeSourceTags: false # boolean. Optional. Use when command = Build an image || command = build || command = Tag image || command = tag || command = Push an image || command = push. Include source tags. Default: false.
#includeLatestTag: false # boolean. Optional. Use when command = Build an image || command = build. Include latest tag. Default: false.
#addDefaultLabels: true # boolean. Optional. Use when addDefaultLabels = false. Add default labels. Default: true.
#useDefaultContext: true # boolean. Optional. Use when command = Build an image || command = build. Use default build context. Default: true.
#buildContext: # string. Optional. Use when useDefaultContext = false. Build context.
#imageDigestFile: # string. Optional. Use when command = Push an image || command = push. Image digest file.
#containerName: # string. Optional. Use when command = Run an image || command = run. Container name.
#ports: # string. Optional. Use when command = Run an image || command = run. Ports.
#volumes: # string. Optional. Use when command = Run an image || command = run. Volumes.
#envVars: # string. Optional. Use when command = Run an image || command = run. Environment variables.
#workingDirectory: # string. Optional. Use when command = Run an image || command = run. Working directory.
#entrypointOverride: # string. Optional. Use when command = Run an image || command = run. Entry point override.
#containerCommand: # string. Optional. Use when command = Run an image || command = run. Container command.
#runInBackground: true # boolean. Optional. Use when command = Run an image || command = run. Run in background. Default: true.
restartPolicy: 'no' # 'no' | 'onFailure' | 'always' | 'unlessStopped'. Required when runInBackground = true. Restart policy. Default: no.
#maxRestartRetries: # string. Optional. Use when runInBackground = true && restartPolicy = onFailure. Maximum restart retries.
# Advanced Options
#dockerHostEndpoint: # string. Optional. Use when command != login && command != logout. Docker host service connection.
#enforceDockerNamingConvention: true # boolean. Optional. Use when command != login && command != logout. Force image name to follow Docker naming convention. Default: true.
#memoryLimit: # string. Optional. Use when command != login && command != logout. Memory limit.
输入
containerregistrytype
-
容器注册表类型
string
。
command != logout
时是必需的。 允许的值:Azure Container Registry
、Container Registry
。 默认值:Azure Container Registry
。
指定要使用 Azure 服务连接进行连接的 Azure 容器注册表。 选择 Azure 容器注册表以连接到 Docker 中心或任何其他专用容器注册表。
addBaseImageData
-
向图像添加基础映像元数据
boolean
。 默认值:true
。
默认值添加基础映像数据,例如基础映像名称和摘要,以帮助实现可跟踪性。 可以通过将此值设置为 false
来选择退出此默认行为。
dockerRegistryEndpoint
-
Docker 注册表服务连接
string
。 可选。 当 containerregistrytype = Container Registry && command != logout
时使用。
指定 Docker 注册表服务连接。 使用注册表进行身份验证的命令是必需的。
azureSubscriptionEndpoint
-
Azure 订阅
string
。 可选。 当 containerregistrytype = Azure Container Registry && command != logout
时使用。
指定 Azure 订阅。
azureContainerRegistry
-
Azure 容器注册表
string
。 可选。 当 containerregistrytype = Azure Container Registry && command != logout
时使用。
指定所选 Azure 订阅中的 Azure 容器注册表。 容器映像生成并推送到此容器注册表。
command
-
命令
string
。 必填。 允许的值:Build an image
(build)、Tag image
(tag)、Push an image
(push)、Run an image
(run)、login
、logout
。 默认值:Build an image
。
指定要运行的 docker 命令。
dockerFile
-
Dockerfile 文件
string
。
command = Build an image || command = build
时是必需的。 默认值:**/Dockerfile
。
指定 Docker 文件的路径。 该任务使用它找到的第一个 docker 文件来生成映像。
arguments
-
参数
string
。 可选。 当 command != login && command != logout
时使用。
指定要传递给 docker 客户端的其他参数。 使用命令参数中的值 buildAndPush
将忽略参数属性。
pushMultipleImages
-
推送多个映像
boolean
。 可选。 当 command = Push an image || command = push
时使用。 默认值:false
。
指定要推送的 Docker 映像文本文件中的列表。 以单独的行 Imagename1:tag1
格式列出每个图像名称。 列出没有标记的图像名称(例如 Imagename2
)会推送 Imagename2
容器中的所有标记。
tagMultipleImages
-
标记多个映像
boolean
。 可选。 当 command = Tag image || command = tag
时使用。 默认值:false
。
指定要在文本文件中标记的多个映像标记和 Docker 映像的列表。 以单独的行 Imagename1:tag1
格式列出每个图像名称。 默认情况下,没有标记为 Imagename2
的映像将标记为最新 。
imageName
-
映像名称
string
。
command = Build an image || command = build || command = Run an image || command = run || pushMultipleImages = false || tagMultipleImages = false
时是必需的。 默认值:$(Build.Repository.Name):$(Build.BuildId)
。
指定要生成、推送或运行的 Docker 映像的名称。
imageNamesPath
-
映像名称路径
string
。
tagMultipleImages = true || pushMultipleImages = true
时是必需的。
指定要标记或推送的 Docker 映像的名称的文本文件的路径。 列出单独的行中的每个图像名称。
qualifyImageName
-
限定映像名称
boolean
。 可选。 当 command = Build an image || command = build || command = Tag image || command = tag || command = Push an image || command = push || command = Run an image || command = run
时使用。 默认值:true
。
使用 Docker 注册表服务连接的主机名指定限定映像名称。
qualifySourceImageName
-
限定源映像名称
boolean
。 可选。 当 command = Tag image || command = tag
时使用。 默认值:false
。
使用 Docker 注册表服务连接的主机名指定限定映像名称。
includeSourceTags
-
包括源标记
boolean
。 可选。 当 command = Build an image || command = build || command = Tag image || command = tag || command = Push an image || command = push
时使用。 默认值:false
。
指定要在生成或推送 Docker 映像时包括的 Git 标记。
includeLatestTag
-
包括最新标记
boolean
。 可选。 当 command = Build an image || command = build
时使用。 默认值:false
。
指定在生成 Docker 映像时是否使用 最新 标记。
addDefaultLabels
-
添加默认标签
boolean
。 可选。 当 addDefaultLabels = false
时使用。 默认值:true
。
指定是否使用 Docker 标签(如存储库、提交、生成和发布信息)将 CI/CD 元数据添加到容器映像。
useDefaultContext
-
使用默认生成上下文
boolean
。 可选。 当 command = Build an image || command = build
时使用。 默认值:true
。
指定在包含 Docker 文件的目录中添加或删除生成上下文。
buildContext
-
生成上下文
string
。 可选。 当 useDefaultContext = false
时使用。
指定生成上下文的路径。
imageDigestFile
-
图像摘要文件
string
。 可选。 当 command = Push an image || command = push
时使用。
指定创建并填充已推送的 Docker 映像的完整映像存储库摘要的文件的路径。
containerName
-
容器名称
string
。 可选。 当 command = Run an image || command = run
时使用。
指定要运行的 Docker 容器的名称。
ports
-
端口
string
。 可选。 当 command = Run an image || command = run
时使用。
指定要发布到主机的 Docker 容器中的端口。 列出单独行上的每个 host-port:container-port
绑定。
volumes
-
卷
string
。 可选。 当 command = Run an image || command = run
时使用。
指定要从主机装载的卷。 列出单独的行上的每个 host-dir:container-dir
。
envVars
-
环境变量
string
。 可选。 当 command = Run an image || command = run
时使用。
指定 Docker 容器的环境变量。 列出单独的行上的每个 name=value
对。
workingDirectory
-
工作目录
string
。 可选。 当 command = Run an image || command = run
时使用。
指定 Docker 容器的工作目录。
entrypointOverride
-
入口点替代
string
。 可选。 当 command = Run an image || command = run
时使用。
指定是否替代 Docker 容器的默认入口点。
containerCommand
-
容器命令
string
。 可选。 当 command = Run an image || command = run
时使用。
指定 Docker 运行命令。 docker run 命令首先在指定的映像上创建可写容器层,然后使用指定的运行命令启动它。 例如,如果映像包含简单的 Python Flask Web 应用程序,则可以指定要启动 Web 应用程序的 python app.py
。
runInBackground
-
在后台 中运行
boolean
。 可选。 当 command = Run an image || command = run
时使用。 默认值:true
。
指定是否在后台运行 Docker 容器。
restartPolicy
-
重启策略
string
。
runInBackground = true
时是必需的。 允许的值:no
、onFailure
(失败时)、always
、unlessStopped
(除非停止)。 默认值:no
。
指定何时运行重启策略。
maxRestartRetries
-
最大重启重试次数
string
。 可选。 当 runInBackground = true && restartPolicy = onFailure
时使用。
指定 Docker 守护程序尝试的重启次数上限。
dockerHostEndpoint
-
Docker 主机服务连接
string
。 可选。 当 command != login && command != logout
时使用。
指定 Docker 主机服务连接。 默认为代理的主机。
enforceDockerNamingConvention
-
强制映像名称遵循 Docker 命名约定
boolean
。 可选。 当 command != login && command != logout
时使用。 默认值:true
。
默认值根据 Docker 命名约定修改 Docker 映像名称。 例如,将大写字符转换为小写并删除空格。
memoryLimit
-
内存限制
string
。 可选。 当 command != login && command != logout
时使用。
将容器可用的最大内存量指定为具有可选后缀(如 2GB
)的整数。
任务控制选项
除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性。
输出变量
此任务定义以下 输出变量,可以在下游步骤、作业和阶段中使用。
DockerOutput
存储 docker 命令的输出
注解
Docker@2 是此任务的较新版本,它通过删除可作为参数传递给命令的输入来简化任务。
要求
要求 | 说明 |
---|---|
管道类型 | YAML,经典版本,经典版本 |
运行时间 | 代理,DeploymentGroup |
需求 | 没有 |
功能 | 此任务不满足作业中后续任务的任何要求。 |
命令限制 | 任何 |
|
任何 |
代理版本 | 所有支持的代理版本。 |
任务类别 | 建造 |