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?