I am completing the deployment of a caching registry mirror for build.ros.org and build.ros2.org following this recipe. Notably my first attempt to deploy this using each build farm’s repo host failed to resolve the rate limiting issue as the docker-registry version in Ubuntu Xenial appears to pass data through but is not correctly caching actual image files. Our production mirror is running on a Focal host and using the docker-registry package from Ubuntu without issue. I expect that using the official registry container image from Docker would also work but I haven’t tested it.
Configuring the registry mirror requires modification of each host’s docker daemon configuration. There is a draft PR here: https://github.com/ros-infrastructure/buildfarm_deployment/pull/244 to make this a configurable option in buildfarm_deployment_config.
A caching container registry mirror is going to be added to the new 20.04-based build farm deployment and will be enabled by default.