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?