我在同一个 JFrog 云帐户/实例上运行了两个 docker 存储库。一个用于内部候选版本,另一个用于潜在的外部 GC 版本。我希望能够构建 docker 映像并推送到内部存储库,让 QA/UAT 去城里,然后将映像复制到发布存储库。我不想从源代码重建图像。不幸的是,当我尝试拉取、标记然后推送图像时,出现错误:
未经授权:将具有清单 v2 模式 1 的 Docker 映像推送到此存储库被阻止。
两个存储库都阻止模式 1 清单,但我正在将其推送到内部存储库,因此我无法将相同的图像推送到发布存储库并没有多大意义。
我设置了一个非常简单的测试来确认(实际存储库 URL 被审查):
% docker pull hello-world:latest
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
...
% docker tag hello-world:latest internal-rc.jfrog.io/hello-world:1.0.0-beta
% docker push internal-rc.jfrog.io/hello-world:1.0.0-beta
The push refers to repository [internal-rc.jfrog.io/hello-world]
9c27e219663c: Pushed
...
% docker system prune -a
...
Total reclaimed space: 131.8MB
% docker image pull internal-rc.jfrog.io/hello-world:1.0.0-beta
1.0.0-beta: Pulling from hello-world
0e03bdcc26d7: Pull complete
...
% docker image tag internal-rc.jfrog.io/hello-world:1.0.0-beta docker-release.jfrog.io/hello-world:1.0.0
% docker image push docker-release.jfrog.io/hello-world:1.0.0
The push refers to repository [docker-release.jfrog.io/hello-world]
9c27e219663c: Layer already exists
[DEPRECATION NOTICE] registry v2 schema1 support will be removed in an upcoming release. Please contact admins of the docker-release.jfrog.io registry NOW to avoid future disruption. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
unauthorized: Pushing Docker images with manifest v2 schema 1 to this repository is blocked. For more information visit https://www.jfrog.com/confluence/display/RTF/Advanced+Topics#AdvancedTopics-DockerManifestV2Schema1Deprecation
所以我可以将图片上传到第一个存储库,并确认它使用的是模式 2:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 7004,
"digest": "sha256:66f750f4871ba45724699d7341ee7135caba46f63fb205351197464a66b55eff"
...
那mediaType
是v1重要吗?清单本身似乎是第 2 版......但我不知道我将如何更改它,或者为什么它会被允许在一个存储库中而不是另一个存储库中。
我正在使用我相信最新版本的 dockerDocker version 19.03.8, build afacb8b
有人知道那里发生了什么吗?架构版本在我第一次上传和下载之间是否发生了变化?还是当我标记它或第二次上传它时?