To build container images on Beluga, you must:
FROMan image which uses Image Manifest Version 2, Schema 2
Beluga does not support use of the Docker Image Resource.
You can get and put images using the registry-image-resource. Not only is this safe to use in a multi-tenant environment, but it's often faster than the older docker-image-resource.
When building from an upstream image, that image must contain a manifest adhering to the Image Manifest Version 2, Schema 2.
If the image you are trying to build from has an older, deprecated, incompatible manifest, then you will receive this error:
error building image: unsupported MediaType: "application/vnd.docker.distribution.manifest.v1+prettyjws", see https://github.com/google/go-containerregistry/issues/377
The only fix for this issue is to manually use the
docker CLI to pull the image in question, and push it again. The
docker CLI performs a dynamic transcoding of the image manifest, updating it to the newer version. Unfortunately Kaniko (the tool used to build images in the task) does not and will implement this feature.