【发布时间】:2019-11-28 15:32:08
【问题描述】:
当尝试对私有 docker 镜像注册表执行 docker push <IMAGE> 时,
收到错误提示 manifest invalid
除了错误,它还给出了一些 [DEPRECATION NOTICE],这也可能是导致失败的原因。
注意:在收到此错误且 docker push 命令失败后。 (在 ci/cd 中,它的工作失败了,我猜它在抛出 exit 1 ),当我重新检查注册表时,图像存在。
在同一个 docker 注册表中,还存在其他图像。他们也正在经历相同的 CI/CD 管道。但对他们来说,没有检测到问题。问题是否有可能源自
Dockerfile? (虽然它以前可以工作,但使用相同的 Dockerfile)
我已经仔细检查了,我推送的图像version(例如:<IMAGE_NAME>:0.0.1-5e90df92ed140-development)在注册表中不存在。
我还提到了与此相关的多个问题和问题,并交叉检查了
- 用户有权推拉图片
- 清单具有与
history相同数量的fsLayers
注意:我们使用的是 JFrog Artifactory 版本到 6.12.2
Docker 版本(在我的本地机器上,它也失败了。带有相同的消息):
Client: Docker Engine - Community
Version: 19.03.4
API version: 1.40
Go version: go1.12.10
Git commit: 9013bf5
Built: Thu Oct 17 23:44:48 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.4
API version: 1.40 (minimum version 1.12)
Go version: go1.12.10
Git commit: 9013bf5
Built: Thu Oct 17 23:50:38 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
错误:
596280599f68: Layer already exists
5d6cbe0dbcf9: Pushed
[DEPRECATION NOTICE] registry v2 schema1 support will be removed in an upcoming release. Please contact admins of the xxxxxxx.docker.repositories.xxxxxx.com registry NOW to avoid future disruption. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
manifest invalid: manifest invalid
【问题讨论】:
-
什么版本的 docker 客户端、引擎和注册表?你是如何构建图像的?
-
@BMitch 使用 docker 引擎和客户端版本更新了问题。虽然不确定注册表版本。当我检查
manifest.json有schemaVersion:1 -
@BMitch 我现在正在使用 docker build 命令构建,在使用 Jenkins 构建时也面临同样的问题。
标签: docker dockerfile docker-registry