如果每个任务都在自己的容器中运行,容器中的资源如何可供另一个容器使用?

How a resource from a container be available to another container if each task runs in it’s own container?

我一直听说每个任务都在它自己的容器中运行,在那种情况下,如果有一个 Job1 产生一些资源作为输出,而 Job2 想要将其读取为输入(流水线作业的典型案例),那么在我想知道如果每个任务都在它自己的容器中运行,一个容器中的资源如何可供另一个容器使用?

此外,如果单个作业有多个任务,那么每个任务是否都在自己的新容器中运行?

每个任务确实 运行 在其自己的容器中。这里的技巧是,Concourse 使用一个名为 baggageclaim 的内部包来实现超出单个任务容器生命周期的工件持久性。

如果您指定任务具有 output,则为该输出命名(或映射到)的目录将作为持久卷而不是临时容器内部文件夹安装。当您写入该目录时,它将存在于行李领取处的内部工作空间中,可用于挂载到其他容器(当您指定同一构建中的后续任务应该使用 output 作为input.

get 步以相同的方式产生这些体积;这就是为什么当您对特定资源执行 get 时,如果您将其命名为 input.[=17=,则该资源的下载位可用于作业中的任何后续步骤]