如何在大厅管道中配置自定义资源类型?

How to configure a custom resource type in a concourse pipeline?

我已经进行了 google 搜索以找到一种在 concourse 管道中设置自定义资源的方法,但是 answers/documentation 不起作用。

有人可以提供从本地注册表中提取并用于构建计划的自定义资源类型的工作示例吗?

例如,假设我要克隆 git 资源并稍微修改它并将其推送到我的本地注册表。 git 资源图像名称为:localhost:5000/local_git:latest

如何在管道定义中使用此自定义资源(local_git:最新)?

您可以在管道 yml 中的 resource_types 键下定义自定义资源类型。

例如:

resource_types:
  - name: custom-git
    type: docker-image
    source:
      repository: localhost:5000/local_git

重要的一点是,自定义资源类型图像的获取方式与在管道中使用基本资源的方式相同,因此对于私有 Docker 注册表的情况,您只需要配置在 docker-image 资源上需要 source:(请参阅 docker-image-resource 的文档)

然后您可以像使用任何基本类型一样使用资源类型:

resources:
  - name: some-custom-git-resource
    type: custom-git
    source: ...

请注意,资源的 type: 键与资源类型上的 name: 匹配。

查看 Configuring Resource Types 的 Concourse 文档,了解有关如何在管道中使用自定义类型的更多信息。

当运行本地注册表时,这里需要考虑两个主要设置:

  1. 必须使用insecure_registries:

    insecure_registries: ["my.local.registry:8080"]

  2. 如果您是 运行 您在 "localhost" 中的注册表,则不应使用 localhost 作为注册表地址,如果这样做,docker图像将尝试解析为 docker 图像的本地主机而不是您的本地计算机,为了避免此问题,请使用您本地计算机的 IP 地址。 (不要使用 127.0.0.1)