我有一个通过 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
让我们尝试这种方法,我已经做了一些更正来解决您遇到的缺少元数据字段的问题。
- 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 }}
这些调整应该可以解决您遇到的缺少元数据字段的问题。如果还有任何其他问题,请告诉我。