DockerHub is the mainstream popular docker registry which can support Manifest List, therefore can support Multi-Arch.
Dockerhub is now integrated in Akraino. The validation project is already pushing to Dockerhub, so if you would like to check out some template code, please take a look at ci-management/jjb/validation.
The docker images are in the official repo now [1] and the docker build jobs passing [2].
[1] https://hub.docker.com/r/akraino/validation/
[2] https://jenkins.akraino.org/view/validation/job/validation-master-docker/
Other open source projects can refer this successful experience to integrate your DockerHub.
The Jenkins slaves are connected to Dockerhub through the LF scripts and no extra steps are needed from users.
Docker needs to be installed on the Jenkins slave building the containers.
If you want to connect the slave to the LF master you'll need to install openjdk and monit and to follow the instructions provided by LF.
Images that support multi-arch are handled with manifest list (a.k.a. fat manifest) mechanism. For more details on how this works in Akraino please check this article: https://www.lfedge.org/2019/07/09/using-dockerhub-in-akraino-edge-stack-other-linux-foundation-projects/
In order to have a multi-arch pipeline in your project you need to: