[
https://issues.apache.org/jira/browse/MESOS-10130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17111207#comment-17111207
]
Qian Zhang commented on MESOS-10130:
------------------------------------
[~kaalh] I think for multi-arch images in
[https://registry-1.docker.io|https://registry-1.docker.io/], it support both
manifest list and manifest. For example I can get manifest list and manifest
for the image `alpine:latest`:
{code:java}
$ DH_TOKEN=$(curl -fsSL
"https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/alpine:pull"
| jq -er '.token')
# Get manifest list
$ curl -s -S -L -i --raw -H "Authorization: Bearer ${DH_TOKEN}" -H "Accept:
application/vnd.docker.distribution.manifest.list.v2+json" -y 60
https://registry-1.docker.io:443/v2/library/alpine/manifests/latest
HTTP/1.1 200 Connection establishedHTTP/1.1 200 OK
Content-Length: 1638
Content-Type: application/vnd.docker.distribution.manifest.list.v2+json
Docker-Content-Digest:
sha256:9a839e63dad54c3a6d1834e29692c8492d93f90c59c978c1ed79109ea4fb9a54
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:9a839e63dad54c3a6d1834e29692c8492d93f90c59c978c1ed79109ea4fb9a54"
Date: Tue, 19 May 2020 12:58:33 GMT
Strict-Transport-Security:
max-age=31536000{"manifests":[{"digest":"sha256:39eda93d15866957feaee28f8fc5adb545276a64147445c64992ef69804dbf01","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"amd64","os":"linux"},"size":528},{"digest":"sha256:0ff8a9dffabb5ed8dcba4ee898f62683305b75b4086f433ee722db99138f4f53","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v6"},"size":528},{"digest":"sha256:19c4e520fa84832d6deab48cd911067e6d8b0a9fa73fc054c7b9031f1d89e4cf","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v7"},"size":528},{"digest":"sha256:ad295e950e71627e9d0d14cdc533f4031d42edae31ab57a841c5b9588eacc280","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm64","os":"linux","variant":"v8"},"size":528},{"digest":"sha256:b28e271d721b3f6377cb5bae6cd4506d2736e77ef6f70ed9b0c4716da8bdf17c","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"386","os":"linux"},"size":528},{"digest":"sha256:e095eb9ac24e21bf2621f4d243274197ef12b91c67cde023092301b2db1e073c","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"ppc64le","os":"linux"},"size":528},{"digest":"sha256:41ba0806c6113064dd4cff12212eea3088f40ae23f182763ccc07f430b3a52f8","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"s390x","os":"linux"},"size":528}],"mediaType":"application\/vnd.docker.distribution.manifest.list.v2+json","schemaVersion":2}
# Get manifest
$ curl -s -S -L -i --raw -H "Authorization: Bearer ${DH_TOKEN}" -H "Accept:
application/vnd.docker.distribution.manifest.v2+json" -y 60
https://registry-1.docker.io:443/v2/library/alpine/manifests/latest
HTTP/1.1 200 Connection establishedHTTP/1.1 200 OK
Content-Length: 528
Content-Type: application/vnd.docker.distribution.manifest.v2+json
Docker-Content-Digest:
sha256:39eda93d15866957feaee28f8fc5adb545276a64147445c64992ef69804dbf01
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:39eda93d15866957feaee28f8fc5adb545276a64147445c64992ef69804dbf01"
Date: Tue, 19 May 2020 12:56:23 GMT
Strict-Transport-Security: max-age=31536000{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 1507,
"digest":
"sha256:f70734b6a266dcb5f44c383274821207885b549b75c8e119404917a61335981a"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 2813316,
"digest":
"sha256:cbdbe7a5bc2a134ca8ec91be58565ec07d037386d1f1d8385412d224deafca08"
}
]
}{code}
> Docker Manifest list support
> ----------------------------
>
> Key: MESOS-10130
> URL: https://issues.apache.org/jira/browse/MESOS-10130
> Project: Mesos
> Issue Type: Improvement
> Components: containerization
> Reporter: Stéphane Cottin
> Priority: Major
> Labels: containerization
>
> Sonatype Nexus 3.22+, and probably other docker registry solutions, now
> serves manifest lists.
> [https://issues.sonatype.org/browse/NEXUS-18546]
> Apache Mesos does not support yet this part of the Image Manifest V2S2 spec.
> https://docs.docker.com/registry/spec/manifest-v2-2/#manifest-list
> This is not a critical issue as Sonatype Nexus is not a dependency of Apache
> Mesos, but as we cannot use Nexus > 3.21.2, this leads to side security
> issues.
> [https://support.sonatype.com/hc/en-us/articles/360046233714]
> Apache Mesos should support the whole Image Manifest V2S2 specification.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)