如何在 Docker 容器内从头到尾运行整个 Azure 管道?

问题描述 投票:0回答:1

有没有一种方法可以定义整个管道阶段和作业可以从开始到结束运行的容器,而无需在阶段之间停止容器。

我正在创建一个用于构建每个微服务的天蓝色管道(其中包括 mvn 部署、docker 构建和发布、ecr 发布、mvn 发布的阶段)。我尝试使用我在微服务内部编写的管道中的容器来触发构建微服务的管道。

容器似乎已初始化并工作,但在每个阶段后都会停止。当 docker 构建和发布阶段运行时,构建阶段生成的构建不存在。

在触发管道中:

  containers:
  - container: dockerContainer
    image: image name
    endpoint: dockerhubcreds
    options: --user 0:0

构建微服务的管道:

  - stage: Build
    dependsOn: SetupMaven
    jobs:
    - job: Build_job
      displayName: Build
      container: dockerContainer

当我尝试上述方法时,容器在每个阶段后都会停止。我还使用 ubuntu 自托管代理进行测试,使用 Microsoft 托管代理(ubuntu-latest)进行生产。
enter image description here

azure-devops azure-pipelines cicd
1个回答
0
投票

您不能在管道中的所有作业中使用相同的容器实例。请记住,每个作业可能由多个构建代理承担,这些代理可能在不同的机器上运行。

容器用于作业级别,而不是阶段。容器可用于运行“作业”(而不是阶段)中的任务列表。如果您需要在各个步骤级别进行细粒度控制,步骤目标允许您为每个步骤选择容器或主机。 请参阅

定义容器作业

了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.