我一直听说每个任务都在它自己的容器中运行,在这种情况下说如果有一个Job1产生一些资源作为输出,Job2想要读取输入(一个典型的流水线工作的情况)所以在这种情况下我想知道如何如果每个任务在自己的容器中运行,那么来自容器的资源可用于另一个容器?
此外,如果一个Job有多个任务,那么每个任务是否都在自己的新容器中运行?
每个任务确实在自己的容器中运行.这里的诀窍是Concourse使用一个内部包baggageclaim,该包被称为超出单个任务容器生命周期的工件持久性.
如果指定任务具有output,则为该输出命名的(或映射到)的目录将作为持久卷而不是临时容器内部文件夹挂载.当您写入该目录时,它将存在于行李提取的内部工作空间中,可以安装到其他容器(当您指定同一构建中的后续任务应该将其output用作其他容器时会发生这种情况input.
get步骤以相同的意义产生这些卷; 这就是为什么当您get对特定资源执行操作时,如果您将该资源命名为,则该资源的下载位可用于作业中的任何后续步骤input.