Nexus 3 OSS - Multi Arch Docker images for Docker repository - Sonatype Nexus Repository - Sonatype Community

Nexus 3 OSS - Multi Arch Docker images for Docker repository

post by haus.daniel on May 8, 2019

Hi all,

I have a question regarding the compatibility of the Docker repository in the NXRM 3.

Does the Docker repository include support for multi-arch images? I could not find anything in the documentation.

Thanks in advance for any help.

Best regards,

Daniel

post by sverre.moe on Aug 14, 2020

Sad to see this has not been answered by Sonatype.

I have the same question.

From the Nexus UI it does not look like it supports multi-arch docker images.

I really hope I am wrong. If not I hope it will come soon (Even if it will be PRO only).

We have a need to have a docker image for jdk11 both for Linux, Mac and Windows.

I do not want to create different docker image names for each arch.

In order to build multi-arch, it looks like one needs to activate the docker experimental features.

post by mjohnson on Aug 14, 2020

Support for manifest lists were added in Nexus 3.22.0 which enables multi-arch images.

When referring to the Nexus UI not looking like it supports multi-arch, what specifically are you referring to?

I apologize that this did not make it into our release notes. The JIRA issue can be found at this link.

post by jstephens on Aug 14, 2020

@sverre.moe you can follow this ticket for updates to our docs: here.

post by luq.java on Sep 5, 2022

Hello, I have installed Nexus OSS 3.41.1. I have two machines A and B, where A is X86 and B is ARM64.

Now I push images from A and B to Nexus, it works well, and I can see two manifests.

Then I pull the image in A and B, but I can only pull the image which I pushed most recently. I can pull the ARM64 image in X86 Architecture.

How can I resolve this? Thanks.

post by jeff.wise on Sep 9, 2022

@luq.java,

Sounds like you pushed two different images/manifests with the same name/tag. You will only get the last pushed image. For multi-platform support, you need to push two images with a single manifest list. You need to either use docker buildx to build and push both platforms on a single machine, or use docker manifest create to push a manifest list containing both images. See the Docker Documentation on manifest and Docker Documentation on buildx for details.