Speeding up Prebuilt Docker Image deployments

Our compressed prebuilt Elixir/Phoenix docker image is ~110 MB. When deploying to Render, it takes ~6 minutes to boot up and start, then ~1 minute to finish (total of 7 minutes).

Each deployment starts with the message:

Sept 21 01:29:04 PM ==> Starting pre-deploy: [...]

Then it sits for about six minutes before we see the next message.

Sept 21 01:34:46 PM 17:34:46.685 [warning] [...]

The delay is a bit of a bummer for us because we were hoping for deployment cycles much faster than manually building each time. As of right now, image deployments are slower than our elixir deployments, on average.

Granted, we might be doing something very wrong… but it’s hard to tell what’s taking so long since there’s nothing in the log about the image download and startup process. It always starts immediately with the “Starting pre-deploy” message then hangs with no output for a while.

Has anyone else experienced this behavior with image deployments? Are these timings within the expected ranges? Any recommendations?


This is more or less how the blueprint is defined for the service:

- type: web
  name: [REDACTED]
  runtime: image
  image:
    url: [REDACTED]
    creds:
      fromRegistryCreds:
        name: [REDACTED]
  plan: starter
  region: virginia
  preDeployCommand: /app/bin/release
  dockerCommand: /app/bin/server
  healthCheckPath: /status
  autoDeploy: false