是否可以在不推动它的情况下构建泊坞窗图像?

Sha*_*awa 10 concourse

我想在我的管道中构建一个docker镜像,然后在其中运行一个作业,而不是推动或拉动图像.

这可能吗?

小智 3

按照设计,如果不使用某种外部资源来存储工件,则无法在管道中的作业之间传递工件。但是,您可以在单个作业中的任务之间传递。此外,您可以在每个任务级别而不是每个作业级别指定图像。因此,执行您想要的操作的最简单方法可能是拥有一个作业,该作业的第一个任务是生成 docker-image,第二个任务将其用作容器映像。

在您的情况下,您将在构建任务中构建 docker 映像,并用于docker export将映像的文件系统导出到 rootfs,您可以将其放入输出 ( my-task-image)。请记住需要匹配的 rootfs 输出的特定架构。您将需要 rootfs/... (提取的“docker导出”)和metadata.json,它只能包含一个空的json对象。您可以查看 docker-image-resource 中的 in 脚本,了解有关如何使其与架构匹配的更多信息: https: //github.com/concourse/docker-image-resource/blob/master/assets/in。然后在后续任务中,您可以在管道 yml 中添加图像参数,如下所示:

- task: use-task-image
  image: my-task-image
  file: my-project/ci/tasks/my-task.yml
Run Code Online (Sandbox Code Playgroud)

为了在任务中使用构建的图像。

  • 再次推动形象。我希望能够创建一个 docker 容器并使用它 *无需* 推送 (4认同)