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

时间:2016-12-28 08:35:05

标签: concourse

我一直听说每个任务都在它自己的容器中运行,在这种情况下说如果有一个Job1产生一些资源作为Job2想要读取的输出(一个典型的流水线工作的情况)所以在这种情况下我想知道如果每个任务在自己的容器中运行,容器中的资源如何可用于另一个容器?<​​/ p>

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

1 个答案:

答案 0 :(得分:7)

每个任务确实在自己的容器中运行。这里的诀窍是,Concourse使用一个名为$$user{uid} = ...; 的内部包,用于超出单个任务容器生命周期的工件持久性。

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

input步骤以相同的意义产生这些卷;这就是为什么当您对特定资源执行get时,如果您将该资源的任何后续步骤命名为get,则该资源的下载位可用。