Closed hatemosphere closed 4 years ago
@yiranwang52 The fix doesn't seem to work for DockerHub images.
With
FROM python:3.6-buster@sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295
I get:
{"level":"info","ts":1592920823.65021,"msg":"* Step 1/2 (commit,modifyfs) : FROM python:3.6-buster@sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295 (eaa36195)"}
{"level":"info","ts":1592920823.650249,"msg":"* Started pulling image index.docker.io/library/python:sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295"}
{"level":"info","ts":1592920824.1015887,"msg":"* Removed 8 directories under /","duration":0}
{"level":"error","ts":1592920824.1018,"msg":"failed to execute build plan: execute stage: build stage 0: build node: do execute: execute step: get manifest: pull image index.docker.io/library/python@sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295: pull manifest: unmarshal distribution manifest: unsupported manifest mediatype: application/vnd.docker.distribution.manifest.list.v2+json"}
@yiranwang52 The fix doesn't seem to work for DockerHub images.
With
FROM python:3.6-buster@sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295
I get:
{"level":"info","ts":1592920823.65021,"msg":"* Step 1/2 (commit,modifyfs) : FROM python:3.6-buster@sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295 (eaa36195)"} {"level":"info","ts":1592920823.650249,"msg":"* Started pulling image index.docker.io/library/python:sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295"} {"level":"info","ts":1592920824.1015887,"msg":"* Removed 8 directories under /","duration":0} {"level":"error","ts":1592920824.1018,"msg":"failed to execute build plan: execute stage: build stage 0: build node: do execute: execute step: get manifest: pull image index.docker.io/library/python@sha256:6655d57ae9272f09839a25d0ec0d272513663d99a4ad7af8b061c83a76d10295: pull manifest: unmarshal distribution manifest: unsupported manifest mediatype: application/vnd.docker.distribution.manifest.list.v2+json"}
After spending a day on this same problem, I think I've found the solution.
The error:
unsupported manifest mediatype: application/vnd.docker.distribution.manifest.list.v2+json
Means the image is multi-platform and you are using the digest that points to the image's Manifest List (the list of discrete platform-specific manifests) as opposed to a specific Image Manifest.
Obtaining the digest from the docker CLI (i.e., docker pull
or docker images --digests
):
Use the digest of a platform-specific manifest, which you can get via docker manifest inspect <IMAGE>
or via DockerHub:
Apparently, makisu doesn't work with format like this (tag + digest):
or even like this (digest only):
I think it's crucial to be able to pull base images via digest since this way is defined as a best practice and supported by at least Docker and Kubernetes.