10

Recently, my docker push commands to a remote ECR registry have become extremely, extremely slow, sometimes maybe frozen.

It hangs long (or forever) in Preparing, or Waiting, or half-way through Pushing, or at 100% Pushing.

I've tried this in different connections, upgrading the Docker daemon (for Mac), restarting it, casting arcane spells, and I can't get it to work as it did.

I know this may not be the best place to ask this question, but I've exhausted all other resources. Has anyone had this issue and solved it?

Samuel Karp
  • 4,373
  • 22
  • 34
salezica
  • 74,081
  • 25
  • 105
  • 166
  • I have not seen this behavior. General debugging advice: 1. Try to write a file from the same computer directly to S3. This will eliminate ECR from the equation, and allow you to isolate other parts of the communication flow. 1. Turn on Docker's debug logs (https://success.docker.com/article/how-do-i-enable-debug-logging-of-the-docker-daemon), and check the logs (https://docs.docker.com/docker-for-mac/troubleshoot/#/checking-the-logs) for anything unexpected, e.g. retries. 1. Use tcpdump to intercept and display the contents of packets sent and received on a network interface, and review that – jtoberon Dec 10 '19 at 22:04
  • Did you ever resolve this @slezica ? Facing same issue. – jmq Dec 17 '21 at 16:12
  • I didn't, before I could we ended up changing our entire approach to deployments – salezica Dec 20 '21 at 18:17
  • Thanks - for others looking at this, a couple other ideas: upgrade your AWS CLI to the latest version, and confirm you're working with the correct AWS profile in your CLI if you have multiple. It'd be nice for an error message to appear if your current profile's permission is denied, but it doesn't give that clue. – jmq Dec 20 '21 at 19:30
  • I've heard that docker-push compresses layers at GZIP max-level, but apparently due to "golang-related reasons", only uses a single thread for the compression. – Mark K Cowan Nov 11 '22 at 13:02

1 Answers1

0

I had the same problem. Pushing from an EC2 instance did the trick for me.