devcontainers / devcontainers/cli

Missing manifest digest when building and pushing multi-platform images

未关闭
#1,062 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
3k
派生
457
平均合并
13 小时 17 分钟
30 天内合并 PR
6

描述

The following build command results in images lacking manifests.

However, the cache image does have a manifest.
```shell
$ devcontainer build \
--workspace-folder . \
--cache-from registry.gitlab.com/jshbrntt/devcontainers/base/cache:latest \
--cache-to registry.gitlab.com/jshbrntt/devcontainers/base/cache:latest \
--platform linux/amd64 \
--platform linux/arm64 \
--image-name registry.gitlab.com/jshbrntt/devcontainers/base:latest
```
Image

```shell
$ docker manifest inspect registry.gitlab.com/jshbrntt/devcontainers/base:latest
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2000,
"digest": "sha256:392a7bfed82a8840bcde04a902dff2a4ead53ebfefd5f3dfdafdba0a4ed502e9",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2000,
"digest": "sha256:e2837457d0638f4c5b759e19f331035fcdd494b44696a1051d24961b221ff0b5",
"platform": {
"architecture": "arm64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 566,
"digest": "sha256:57e6f2e1ad024393f23134b98db85ab518d6b3719f3efd562d6ab63c84f8b56d",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 566,
"digest": "sha256:d8fcfd1cff48c696ad50c0fab56fc00d6a779c134a7f0cf175d95fc7d018ea1d",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
}
]
}
```

贡献指南

打开贡献指南

调研方向

先使用两个平台重现所提供的 devcontainer 构建命令,然后使用 docker manifest inspect 检查已推送的镜像,并将其与缓存镜像的 manifest 进行比较。跟踪 CLI 的多平台 build-and-push 入口点,以确定已发布的 manifest 在哪里出现差异。当已推送的镜像暴露出预期的平台 manifest digest,且不再出现报告的缺少 manifest 行为时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
docker, typescript
领域
cli, devops, infrastructure
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。