Pushing to the registry is painfully slow. A deploy that would take 3 minutes at most sometimes takes an hour when trying to push layers to http://registry.fly.io/
The same deployment sometimes only takes a minute to push to the same registry.
Deployments are arguably a very critical thing so it’s upsetting that I can’t trust this part of fly.io. Sometimes I am able to deploy a hotfix within 5 minutes and sometimes it takes an hour because the registry upload is so slow.
So I opened this thread because I was frustrated waiting for an hour for the upload to complete. Opened another terminal and tried another deploy at the same time with --remote-only. And while the second deploy was “Sending build context to Docker daemon” I could see how the first deployment was finally uploading with 100x of the speed I was seeing for the previous hour to the registry. It finished within a minute.
I have seen it a lot of times over the past few weeks and I am pushing to EWR region so I don’t think that’s related. It is still slow (even if occasionally it works).
Pushing the build context to the remote builder is not the same as pushing to the registry. Are you seeing problems with both, or just with pushing the Docker context?
One reason the Docker context push could be a problem is that your remote builder is hosted in Paris. Which region are you in? If you’re in ewr, pushes could be slow due to that distance.
If you have one region where you deploy from, it’s better to have your builder there. To make that happen, you can destroy your builder app and run a remote deployment from your region. The builder will be created closer to you.
Pushing to the registry should, in general, be fast from any region, but there we’re dependent on AWS S3, our source of truth currently for storing images. Sometimes it can slow down without warning. In the future we hope to run our own storage and be able to make more specific claims about latency.
And again this weird thing happens, if pushing to registry is grinding to a halt for --local-only, and I run another fly deploy --remote-only in a separate terminal window it magically starts pushing the image.