利用任务生成和管理容器

已完成

Azure 容器注册表 (ACR) 任务是一组功能:

  • 为 Linux、Windows 和高级 RISC 计算机 (Arm) 等平台提供基于云的容器映像构建。
  • 使用按需容器映像生成将应用程序开发周期的早期部分扩展到云。
  • 启用由源代码更新、容器的基础映像更新或计时器触发的自动生成。

任务方案

ACR 任务支持使用多种方案来生成和维护容器映像与其他项目。

  • 快速任务 - 在 Azure 中按需生成单个容器映像并将其推送到容器注册表,且无需安装本地 Docker 引擎。 请考虑云中的 docker builddocker push

  • 自动触发的任务 - 启用一个或多个触发器来生成映像:

    • 源代码更新时触发
    • 基础映像更新时触发
    • 按计划触发
  • 多步骤任务 - 使用基于多步骤、多容器的工作流扩展 ACR 任务的单一映像生成和推送功能。

每个 ACR 任务有一个关联的源代码上下文 - 用于生成容器映像或其他项目的一组源文件的位置。 示例上下文包括 Git 存储库或本地文件系统。

快速任务

“内部循环”开发周期是指编写代码、生成和测试应用程序,然后提交到源代码管理的迭代过程。 它实际上是容器生命周期管理的开始。

在你提交第一行代码之前,ACR 任务的快速任务功能可以通过将容器映像生成卸载到 Azure,来提供集成式开发体验。 使用快速任务,可以在提交代码之前验证自动化生成定义并捕获潜在的问题。

Azure CLI 中的 az acr build 命令使用我们熟悉的 docker build 格式提取上下文(要生成的文件集),将其发送到 ACR 任务,并在完成后将生成的映像默认推送到其注册表。

源代码更新时触发任务

向 GitHub 或 Azure DevOps Services 中的 Git 存储库提交代码或者发出或更新拉取请求时,触发容器映像生成或多步骤任务。 例如,通过指定 Git 存储库并根据需要指定分支和 Dockerfile,使用 Azure CLI 命令 az acr task create 配置生成任务。 当团队在存储库中更新代码时,ACR 任务创建的 Webhook 会触发存储库中定义的容器映像的生成。

基础映像更新时触发

可以设置一个 ACR 任务,在它生成应用程序映像时跟踪对基础映像的依赖关系。 将更新的基础映像将推送到注册表时,或者在公共存储库(例如 Docker Hub)中更新基础映像时,ACR 任务可以基于该映像自动生成任何应用程序映像。

计划任务

(可选)创建或更新任务时,通过设置一个或多个计时器触发器来计划任务。 计划任务有助于按定义的计划运行容器工作负荷,或者对定期推送到注册表的映像运行维护操作或测试。

多步骤任务

YAML 文件中定义的多步骤任务为容器映像或其他项目指定单独的生成和推送操作。 它们还可以定义一个或多个容器的执行,每个步骤都使用容器作为其执行环境。 例如,可以创建一个多步骤任务来自动完成以下操作:

  1. 生成 Web 应用程序映像
  2. 运行 Web 应用程序容器
  3. 生成 Web 应用程序测试映像
  4. 运行针对正在运行的应用程序容器执行测试的 Web 应用程序测试容器
  5. 如果测试通过,则生成 Helm 图表存档包
  6. 使用新的 Helm 图表存档包执行 helm upgrade

映像平台

默认情况下,ACR 任务为 Linux OS 和 amd64 体系结构生成映像。 指定 --platform 标记可为其他体系结构生成 Windows 映像或 Linux 映像。 请以“OS/体系结构”格式(例如 --platform Linux/arm)指定 OS 和(可选)支持的体系结构。 对于 ARM 体系结构,可以选择性地以“OS/体系结构/变体”格式(例如 --platform Linux/arm64/v8)指定变体:

操作系统 体系结构
Linux AMD64
Arm
ARM64
386
Windows AMD64