concourse 中的 docker-image 和registry-image 有什么区别?

Vin*_*aes 2 docker concourse concourse-resource-types

在大厅的部分下resources,我有时会遇到 type registry-image,有时会遇到 type docker-image

resources:

  - name: some-image   
    type: registry-image      
    source:                   
      repository: 1234567890.dkr.ecr.eu-west-1.amazonaws.com/some-image
      tag: 2.4.5              

  - name: other-image
    type: docker-image
    source:
      repository: 1234567890.dkr.ecr.eu-west-1.amazonaws.com/other-image
      tag: latest
Run Code Online (Sandbox Code Playgroud)

它们看起来很相似,但到底有什么区别呢?

Vin*_*aes 7

在谷歌搜索时,我在registry-image的github页面上找到了答案

此资源旨在替代 Docker 映像资源。以下是主要区别:

  • 该资源是用纯 Go 实现的,不使用 Docker 守护进程或 CLI。这使得它更安全(不需要特权:true)、更高效、更不容易出错(现在我们使用 Go API 并且不解析 docker CLI 输出)。

  • 该资源具有更强的测试覆盖率。

  • 此资源不支持也永远不会支持构建 - 仅支持注册表映像推/拉。应该使用 oci-build 任务(或任何可以生成 OCI 图像 tarball 的东西)之类的东西来完成构建。

  • 该资源的目标是尽可能保持重点和简单。Docker 镜像资源变得过于庞大和复杂。构建和发布 Docker 镜像的方法实在太多了。支持许多较小的资源+任务而不是一个巨大的界面会更容易。