-
-
Notifications
You must be signed in to change notification settings - Fork 349
Description
Hi, I use this docker registry UI and I have an issue listing tag for images using manifest list for manifest v2, schema v2 (aka application/vnd.docker.distribution.manifest.list.v2+json
).
Bug description
When pushing an image for manifest list v2, schema v2 (see below for example), the tag listing is showing the tag with an error (due to a 404 status for the HTTP request for that tag). However, when clicking on the tag history, the request is successful.
I traced down the request, and apparently the application/vnd.docker.distribution.manifest.list.v2+json
is missing when list
is not true:
(self.opts.list ? ', application/vnd.docker.distribution.manifest.list.v2+json' : '') |
which is here and maybe somewhere else:
new DockerImage(props.image, tag, { |
I think that is an error, but I admit that I'm not sure about that.
How to Reproduce
Steps to reproduce the behavior:
- Build/push an image using manifest list (v2)
- Open the UI, click on the image (an error appears after the list of tags is loaded)
- Click on the history button for the pushed manifest list, all details appear correctly
Expected behavior
List correctly all tags / support manifest list (v2) when listing tags.
Screenshots
Here the error when listing a tag:
Here is the full page of the tag history page:
System information
- OS: Debian 11 (host), using docker container
- Browser:
- Name: Firefox
- Version: 103
- Docker registry UI:
- Version: 2.2.1
- Server: docker
- Docker version: 20.10.5+dfsg1
- Docker registry ui tag: 2
- OS/Arch: linux/amd64
- Tools: docker-compose
Additional context
Example container
As an example container, you can either pull the one I'm testing from Docker Hub: enrico204/debian-builder:stretch-v0-armel
or you can build this Dockerfile:
FROM docker.io/arm32v5/debian:stretch
RUN apt-get update && apt-get install -yq mtr-tiny
Using this series of commands:
buildah manifest create test:armel
buildah bud -f Dockerfile --manifest test:armel --arch arm --variant v7
buildah manifest push --all --format=docker test:armel docker://your.registry/test:armel
HTTP requests trace
When listing all tags for my image, I see an HTTP request to the tag which has this issue:
GET https://my.registry/v2/utilities/debian-builder/manifests/stretch-v0-armel
Status 404 Not Found
Version HTTP/2
Transferred 320 B (70 B size)
Referrer Policy strict-origin-when-cross-origin
content-length 70
content-type application/json; charset=utf-8
date Wed, 07 Sep 2022 09:25:00 GMT
docker-distribution-api-version registry/2.0
server nginx/1.21.6
x-content-type-options nosniff
X-Firefox-Spdy h2
Accept application/vnd.docker.distribution.manifest.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json
Accept-Encoding gzip, deflate, br
Accept-Language en-US,en;q=0.5
Authorization Basic
Cache-Control no-cache
Connection keep-alive
DNT 1
Host my.registry
Pragma no-cache
Referer https://my.registry/?get=1
Sec-Fetch-Dest empty
Sec-Fetch-Mode cors
Sec-Fetch-Site same-origin
Sec-GPC 1
TE trailers
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0
When opening the tag history I see this request instead:
GET https://my.registry/v2/utilities/debian-builder/manifests/stretch-v0-armel
Status 200 OK
Version HTTP/2
Transferred 762 B (315 B size)
Referrer Policy strict-origin-when-cross-origin
Request Priority Highest
content-length 315
content-type application/vnd.docker.distribution.manifest.list.v2+json
date Wed, 07 Sep 2022 09:28:16 GMT
docker-content-digest sha256:fc2950e3a5646c210f1e3a242dc7d957291a3fae1bccb9d655c59d0c538141a3
docker-distribution-api-version registry/2.0
etag "sha256:fc2950e3a5646c210f1e3a242dc7d957291a3fae1bccb9d655c59d0c538141a3"
server nginx/1.21.6
x-content-type-options nosniff
X-Firefox-Spdy h2
Accept application/vnd.docker.distribution.manifest.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, application/vnd.docker.distribution.manifest.list.v2+json
Accept-Encoding gzip, deflate, br
Accept-Language en-US,en;q=0.5
Authorization Basic
Connection keep-alive
DNT 1
Host my.registry
Referer https://my.registry/?get=1
Sec-Fetch-Dest empty
Sec-Fetch-Mode cors
Sec-Fetch-Site same-origin
Sec-GPC 1
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0