jobs.job.container 定义

容器作业允许在容器而不是代理主机上运行作业。

引用此定义的定义: pipelinejobs.jobjobs.deployment

引用此定义的定义: pipelinejobs.job

实现形式

实现 描述
container: string 按别名指定作业容器。
容器:映像 使用映像标记和选项指定作业容器。

container: string

按别名指定作业容器。

container: string # Specify job container by alias.

container 字符串。

按别名指定作业容器。

备注

别名可以是映像的名称,也可以是对 容器资源的引用。

示例

以下示例从 Docker Hub 提取标记为 18.04 ubuntu 映像,然后启动容器。 printenv当命令运行时,它会在 ubuntu:18.04 容器内发生。

pool:
  vmImage: 'ubuntu-18.04'

container: ubuntu:18.04

steps:
- script: printenv

容器:映像

使用映像标记和选项指定作业容器。

container:
  image: string # Required. Container image tag.
  endpoint: string # ID of the service endpoint connecting to a private container registry.
  env: # Variables to map into the container's environment.
    string: string # Name/value pairs
  mapDockerSocket: boolean # Set this flag to false to force the agent not to setup the /var/run/docker.sock volume on container jobs.
  options: string # Options to pass into container host.
  ports: [ string ] # Ports to expose on the container.
  volumes: [ string ] # Volumes to mount on the container.
  mountReadOnly: # Volumes to mount read-only, the default is all false.
    work: boolean # Mount the work directory as readonly.
    externals: boolean # Mount the externals directory as readonly.
    tools: boolean # Mount the tools directory as readonly.
    tasks: boolean # Mount the tasks directory as readonly.

属性

image 字符串。 必需。
容器映像标记。

endpoint 字符串。
连接到专用容器注册表的服务终结点的 ID。

env 字符串字典。
要映射到容器环境的变量。

mapDockerSocket布尔值
将此标志设置为 false 以强制代理不在容器作业上设置 /var/run/docker.sock 卷。

options 字符串。
用于传入容器主机的选项。

ports 字符串列表。
要对容器公开的端口。

volumes 字符串列表。
要装载到容器上的卷。

mountReadOnlymountReadOnly
要装载只读的卷,默认值为 false。

容器:映像

使用映像标记和选项指定作业容器。

container:
  image: string # Required. Container image tag.
  endpoint: string # ID of the service endpoint connecting to a private container registry.
  env: # Variables to map into the container's environment.
    string: string # Name/value pairs
  mapDockerSocket: boolean # Set this flag to false to force the agent not to setup the /var/run/docker.sock volume on container jobs.
  options: string # Options to pass into container host.
  ports: [ string ] # Ports to expose on the container.
  volumes: [ string ] # Volumes to mount on the container.

属性

image 字符串。 必需。
容器映像标记。

endpoint 字符串。
连接到专用容器注册表的服务终结点的 ID。

env 字符串字典。
要映射到容器环境的变量。

mapDockerSocket布尔值
将此标志设置为 false 以强制代理不在容器作业上设置 /var/run/docker.sock 卷。

options 字符串。
用于传入容器主机的选项。

ports 字符串列表。
要对容器公开的端口。

volumes 字符串列表。
要装载到容器上的卷。

容器:映像

使用映像标记和选项指定作业容器。

container:
  image: string # Required. Container image tag.
  endpoint: string # ID of the service endpoint connecting to a private container registry.
  env: # Variables to map into the container's environment.
    string: string # Name/value pairs
  options: string # Options to pass into container host.
  ports: [ string ] # Ports to expose on the container.
  volumes: [ string ] # Volumes to mount on the container.

属性

image 字符串。 必需。
容器映像标记。

endpoint 字符串。
连接到专用容器注册表的服务终结点的 ID。

env 字符串字典。
要映射到容器环境的变量。

options 字符串。
用于传入容器主机的选项。

ports 字符串列表。
要对容器公开的端口。

volumes 字符串列表。
要装载到容器上的卷。

示例

使用 options 配置容器启动。

container:
  image: ubuntu:18.04
  options: --hostname container-test --ip 192.168.0.1

steps:
- script: echo hello

在以下示例中,容器在“资源”部分中进行定义。 稍后通过引用其分配的别名来引用每个容器。

resources:
  containers:
  - container: u14
    image: ubuntu:14.04

  - container: u16
    image: ubuntu:16.04

  - container: u18
    image: ubuntu:18.04

jobs:
- job: RunInContainer
  pool:
    vmImage: 'ubuntu-18.04'

  strategy:
    matrix:
      ubuntu14:
        containerResource: u14
      ubuntu16:
        containerResource: u16
      ubuntu18:
        containerResource: u18

  container: $[ variables['containerResource'] ]

  steps:
  - script: printenv

请参阅