【问题标题】:How to configure a custom resource type in a concourse pipeline?如何在大厅管道中配置自定义资源类型?
【发布时间】:2017-09-26 03:52:40
【问题描述】:

我已经进行了谷歌搜索以找到一种在大厅管道中设置自定义资源的方法,但答案/文档不起作用。

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

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

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

【问题讨论】:

    标签: concourse


    【解决方案1】:

    在运行本地注册表时需要考虑两个主要设置:

    1. 必须使用 insecure_registries:

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

    2. 如果您在“localhost”中运行注册表,则不应使用 localhost 作为注册表的地址,如果这样做,docker 映像将尝试解析为 docker 映像的 localhost您的本地机器,为了避免这个问题,请使用您本地机器的 IP 地址。 (不要使用 127.0.0.1)

    【讨论】:

    • 我还添加了 insecure_registries 但它不起作用。
    • 我假设您在同一主机上运行 concourse 和您的 docker 注册表,对吗?如果是这种情况,您必须使用 docker 注册表的主机 IP 地址 + 端口。您不应使用“localhost”或“127.0.0.1”。你试过了吗?
    • 这就是问题所在。我使用了 127.0.0.1 以外的其他本地。既然你帮我解决了这个问题..可以接受你的回答吗?谢谢!
    • 很高兴听到这个消息,如果它对你有帮助,你可以接受我的回答:)
    • 您可以查看此页面以获取有关接受答案的更多信息。 stackoverflow.com/help/someone-answers
    【解决方案2】:

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

    例如:

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

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

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

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

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

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

    【讨论】:

    • 你自己试过这个配置吗?我在周末在我的环境中尝试了此设置,但没有成功。
    猜你喜欢
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 2021-10-12
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多