-
Type: Bug
-
Status: Resolved
-
Priority: Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 2023.4
-
Component/s: Docker Image
-
Epic Link:
-
Tags:
-
Sprint:nxplatform #98, nxplatform #99
-
Story Points:2
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)?.
- is related to
-
NXP-32118 Multi-platform Docker image breaks Openshift build
- Resolved
-
NXBT-3667 Install skopeo tool to our builder-base
- Resolved
-
NXP-32375 The 2023 promoted Docker image is not multi-platform
- Resolved
-
NXP-32520 The 2023 promoted Docker image is STILL not multi-platform
- Resolved
-
NXP-31273 Set a multi platform Docker Images build in CI
- Resolved
-
NXP-31815 Install ARM compatible tools in Nuxeo Docker image
- Resolved