Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-32122

Docker image deployed to packages.nuxeo.com is not multi-platform

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2023.4
    • Component/s: Docker Image

      Description

      Since NXP-31273, with multi-platform images built with Buildkit, when pushing a Docker image to a registry, we should have an OCI manifest list, even if a single architecture variant is built.

      For 2021:
      The image only supports a single platform: linux/amd64, thus the resulting manifest should be:

      $ docker buildx imagetools inspect docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2021.45.6
      Name:      docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2021.45.6
      MediaType: application/vnd.oci.image.index.v1+json
      Digest:    sha256:8dd3f9f8df227f17c19e93fc8148e2002728dfb6e92a6fc139fc74938a56081b
                 
      Manifests: 
        Name:        docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2021.45.6@sha256:bef0b4e9f9df0f1e8c37ea43fb6db9ed83630d2cf4e81d19945029bd02746e99
        MediaType:   application/vnd.oci.image.manifest.v1+json
        Platform:    linux/amd64
                     
        Name:        docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2021.45.6@sha256:c94f70d57e4fe96662720a6eb4218bc6a69bbc5cec3bbba99f2fad4c49800734
        MediaType:   application/vnd.oci.image.manifest.v1+json
        Platform:    unknown/unknown
        Annotations: 
          vnd.docker.reference.digest: sha256:bef0b4e9f9df0f1e8c37ea43fb6db9ed83630d2cf4e81d19945029bd02746e99
          vnd.docker.reference.type:   attestation-manifest
      

      For 2023:
      The image supports multiple platforms: linux/amd64 and linux/arm64, thus the resulting manifest should be:

      $ docker buildx imagetools inspect docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2023.3.23
      Name:      docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2023.3.23
      MediaType: application/vnd.oci.image.index.v1+json
      Digest:    sha256:a1795b573429d46bee498fa12f11b082808edd3d8983c613b11598eb5b0c3682
                 
      Manifests: 
        Name:        docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2023.3.23@sha256:96c9e45aea60a240004472bffb53ae1026789901e5665e5045dd1325f27ca297
        MediaType:   application/vnd.oci.image.manifest.v1+json
        Platform:    linux/amd64
                     
        Name:        docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2023.3.23@sha256:58d11086cb5bf524261f5250100af911ab74b3e42c310ac0c5918729bac878c7
        MediaType:   application/vnd.oci.image.manifest.v1+json
        Platform:    linux/arm64
                     
        Name:        docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2023.3.23@sha256:71df44f027209060f84b01c3c74b22fd667c15479534a7d9610fbc184ddaf5c7
        MediaType:   application/vnd.oci.image.manifest.v1+json
        Platform:    unknown/unknown
        Annotations: 
          vnd.docker.reference.type:   attestation-manifest
          vnd.docker.reference.digest: sha256:96c9e45aea60a240004472bffb53ae1026789901e5665e5045dd1325f27ca297
                     
        Name:        docker.platform.dev.nuxeo.com/nuxeo/nuxeo:2023.3.23@sha256:a39ef05ee998f562617b02ba582e4ce0cea10087a071d110711107ad1b9a16f3
        MediaType:   application/vnd.oci.image.manifest.v1+json
        Platform:    unknown/unknown
        Annotations: 
          vnd.docker.reference.digest: sha256:58d11086cb5bf524261f5250100af911ab74b3e42c310ac0c5918729bac878c7
          vnd.docker.reference.type:   attestation-manifest
      

      Though, for the same images, on docker-privates.packages.nuxeo.com, the manifests aren't in the list form:
      For 2021:

      $ docker buildx imagetools inspect docker-private.packages.nuxeo.com/nuxeo/nuxeo:2021.45.6
      Name:      docker-private.packages.nuxeo.com/nuxeo/nuxeo:2021.45.6
      MediaType: application/vnd.oci.image.manifest.v1+json
      Digest:    sha256:bef0b4e9f9df0f1e8c37ea43fb6db9ed83630d2cf4e81d19945029bd02746e99
      

      For 2023:

      $ docker buildx imagetools inspect docker-private.packages.nuxeo.com/nuxeo/nuxeo:2023.3.23
      Name:      docker-private.packages.nuxeo.com/nuxeo/nuxeo:2023.3.23
      MediaType: application/vnd.oci.image.manifest.v1+json
      Digest:    sha256:c90508c1fd8e27e5d2cbfd1963cce7fd5f6869f8bf4f1cb4f4c4554c6acb7fe5
      

      This is probably because we use skopeo to copy the image from docker.platform.dev.nuxeo.com to docker-private.packages.nuxeo.com, and we're missing some options such as --all or --multi-arch.

      Note that this is also affecting the moving tag images on docker.platform.dev.nuxeo.com: 2021.x and 2023.x, since they're also copied with skopeo.

      Let's also have a look at docker buildx imagetools create as a replacement for skopeo copy (and skopeo inspect, then getting rid of skopeo)?.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: