我的
dockerfile
使用多阶段构建,我想缓存其中一个阶段以加快图像构建速度。
基本上,如果我不使用 warmer 缓存图像并安装
/cache
卷,我的 kaniko pod 和 dockerfile 工作正常。
但是,如果我使用 warmer 将中间阶段缓存到 PVC,然后将该 PVC 安装到 kaniko executor,则在尝试 push 图像到远程容器注册表时,我会收到此错误。
MANIFEST_INVALID: manifest invalid; map[Reason:map[]]
我设置了一个本地容器注册表并让 kaniko 推送到它,我在容器注册表上收到了这些错误日志。
err.code="manifest invalid" err.detail="mediaType in manifest should be 'application/vnd.docker.distribution.manifest.v2+json' not 'application/vnd.oci.image.manifest.v1+json'" err.message="manifest invalid" go.version=go1.19.9 http.request.contenttype="application/vnd.docker.distribution.manifest.v2+json"
在github上,我发现了一个与kaniko + oci相关的开放错误,https://github.com/GoogleContainerTools/kaniko/issues/1836。但我不确定我的问题是否相关。
当
FROM
图像的版本是字符串(例如 latest
)而不是版本号时,我遇到了相同的错误消息。