Building Container Images

    To build container images on Beluga, you must:

    Beluga does not support use of the Docker Image Resource.

    Using build-oci-image-unprivileged

    The build-oci-image-unprivileged task is built upon the more commonly-used oci-build-task, to which you should refer to for documentation.

    Pushing Images

    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.

    Image Manifest Versions and Errors

    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.