即使有标签,Artifact Hub Docker 容器映像也无法识别

问题描述 投票:0回答:1

我有一个通过 github 包发布的 docker 容器,并且我已根据工件中心的要求提供了以下标签:

error preparing package (tag: latest): 3 errors occurred:
* required metadata field not provided: org.opencontainers.image.created
* required metadata field not provided: org.opencontainers.image.description
* required metadata field not provided: io.artifacthub.package.readme-url

这是错误信息

我在构建时将包添加到操作管道中,如下所示:

    - name: Extract Docker metadata
        id: meta
        uses: docker/[email protected]
        with:
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
          labels: |
            org.opencontainers.image.source=${{ github.event.repository.clone_url }}
            org.opencontainers.image.created=${{ steps.current-time.outputs.time }}
            org.opencontainers.image.description=${{ secrets.IMAGE_DESCRIPTION }}
            io.artifacthub.package.readme-url=${{ secrets.README_URL }}

当我在本地使用 docker 检查它们时,我的标签会显示在这个结构中:

    [
    {
        "Id": "id",
        "RepoTags": ["tag"],
        "RepoDigests": ["digest"],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2024-02-13T08:22:35.270211021Z",
        "Container": "",
        "ContainerConfig": {},
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Labels": {
                "io.artifacthub.package.readme-url": "some readme url",
                "org.opencontainers.image.created": "2024-02-13T08:15:42.993Z",
                "org.opencontainers.image.description": "sample text",
                "org.opencontainers.image.licenses": "Apache-2.0",
                "org.opencontainers.image.revision": "b87daa04233fc010b4dc28e562b00cd62332e6be",
                "org.opencontainers.image.source": "http://source",
                "org.opencontainers.image.title": "title",
                "org.opencontainers.image.url": "https://myurl",
                "org.opencontainers.image.version": "v1.3.5"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",

删除了一些多余的 json 子对象,但这是我得到的粗略 json 结构。

我缺少什么?我使用的是旧的 docker 构建版本吗?

我也不太热衷于在 docker 文件中提供标签,如下所示:

    LABEL org.opencontainers.image.description DESCRIPTION
docker dockerfile containers open-container-initiative
1个回答
0
投票

让我们尝试这种方法,我已经做了一些更正来解决您遇到的缺少元数据字段的问题。

- name: Extract Docker metadata
  id: meta
  uses: docker/[email protected]
  with:
    images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
    labels: |
      org.opencontainers.image.source=${{ github.event.repository.clone_url }}
      org.opencontainers.image.created=${{ github.run_id }}
      org.opencontainers.image.description=${{ secrets.IMAGE_DESCRIPTION }}
      io.artifacthub.package.readme-url=${{ secrets.README_URL }}

这些调整应该可以解决您遇到的缺少元数据字段的问题。如果还有任何其他问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.