registry.fly.io now uses global storage to improve reliability of image pushes! Pushes in Sydney are stored in Sydney. Pushes near Mumbai use storage in Mumbai. And so on. This improves reliability when pushing docker images to our registry.
Every Fly deployment interacts with registry.fly.io. That’s where we store the docker image that gets transmogrified into a running firecracker VM. fly deploy will push an image to registry.fly.io and then flyd or nomad will pull that image when creating or updating an instance.
Previously, the registry stored images in the Ashburn, Virginia USA region. fly deploy would struggle to push the image to the registry when run far away from Virginia USA, like say from Sydney. That’s because pushing gigabytes, or even lots of megabytes, of docker image content from Sydney to Virginia is… difficult. Packets get lost, timeouts occur, retries are needed all of which could lead to failed deployments.
So, we brought the registry storage closer to you. After a successful preview of this new architecture, we now have storage in all regions, and have released this work to production.
Having the docker images close to where they are pushed doesn’t change the fact that pulls may cross the globe. For example, an image pushed near Seattle will be stored there. An app running that image in Seattle, Tokyo, and Ezeiza will still have to pull it from Seattle to those three locations. We’ve seen pushes be more sensitive to network conditions, which is why we started in this way. We’re working on improving the reliability of pulls, so stay tuned!
Keep on deploying like you always have, and let us know if you run into any issues with the registry or have other feedback.
My CI suddenly gives the same error. Meanwhile the same command works from my laptop. Although after deleting the builder app (as suggested in that thread) and trying again local, using remote builder, it took some seconds to pick up the registry and start working. But my CI still fails
Does docker-hub-mirror.fly.io behave the same way? I imagine it caches the pulled images on the closest region of the puller. Is it deployed on all the fly regions?
I ask because I want to use the fastest possible way to pull images from dockerhub for a project called dockerphobia, where you can inspect any Docker image files sizes with a treemap chart.