Error Deploying app update with Buildpacks

Hi,

I’m trying to update an app using “fly deploy” but I’m getting the following error after the “Building image with Buildpacks” stage

===> ANALYZING

ERROR: failed to initialize analyzer: getting previous image: Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43
Error: failed to fetch an image or build from source: executing lifecycle: failed with status code: 1

It’s just a simple NodeJS app using the following config which I was able to use to deploy in November

# fly.toml file generated for opendata on 2023-01-30T13:40:42Z

app = "[redacted]"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
  builder = "heroku/builder:24"

[env]
  PORT = "3000"

[experimental]
  auto_rollback = true

[[services]]
  http_checks = []
  internal_port = 3000
  processes = ["app"]
  protocol = "tcp"
  script_checks = []
  [services.concurrency]
    hard_limit = 1000
    soft_limit = 800
    type = "connections"

  [[services.ports]]
    force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"

Hi, the heroku/builder images that Buildpacks use were updated sometime in December (by the Builder/buildpack maintainers, not by us) and are now incompatible with the Docker daemon version that Fly builders run. That’s why you get this error.

As a quick workaround you can switch to a Dockerfile-based build. Since it’s a simple NodeJS app, you should be able to find and/or create (maybe with the LLM of your choice?) a Dockerfile that packages your app as a regular Docker image.

Cheers,

  • Daniel

Ah thanks for the quick reply Daniel. I’ll look at moving to a Dockefile deployment. Thanks!