Docker deploy failing due to using wrong image?

Hi all!

I originally tried deploying to Fly by having it build my Docker image:

[build]
  dockerfile = "Dockerfile"

This was proving problematic for me, so I decided to try using images and switched to this:

[build]
  image = "xxxxxx/yyyyyy"

The initial image I tried with was built for arm64. I swapped to having GitHub build the image in a GitHub Action and that produced a new amd64 image (confirmed on Docker Hub when examining the image and when booting the image locally). It looks like Fly is still using the original image though and isn’t fetching the new image from Docker Hub:

❯ fly launch
An existing fly.toml file was found for app appname
App is not running, deploy...
Deploying appname
==> Validating app configuration
--> Validating app configuration done
Searching for image 'xxxxxx/yyyyyy:latest' remotely...
Error image must be amd64 architecture for linux os, found arm64 linux

On Docker Hub, the OS/ARCH is listed as linux/amd64. When running the image locally, I confirmed that:

❯ docker run --rm -it xxxxxx/yyyyyy bash
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
root@fcc5788e1af5:/myapp# uname -a
Linux fcc5788e1af5 5.10.124-linuxkit #1 SMP PREEMPT Thu Jun 30 08:18:26 UTC 2022 x86_64 GNU/Linux

Any ideas why this might be happening?

The image reference might be cached. Can you send the full image tag to support@fly.io so we can check?

I’m seeing linux/amd64 now, but linux/arm64 was cached earlier. It should work if you try again. Going forward images with the mutable :latest label will always check the registry. Sorry about that!

Confirmed that it’s working now! Thanks!