No builder that I see:
flyctl apps list
NAME OWNER STATUS PLATFORM LATEST DEPLOY
evcc personal running nomad 2023-02-03T09:14:50Z
evcc-api personal running nomad 2022-11-20T16:18:57Z
evcc-mail personal pending
evcc-demo evcc running nomad 2023-01-14T12:15:53Z
So still unsure how to recreate the builder.
I suspect Fly builders aren’t multi-arch aware or some regression has caused it…
What I do notice though is that the demo app has a different owner (i.e. org instead of personal GH account). I’m not sure how that happened or if it was intentional.
The issue started to happen due to the changes in the Dockerfile to introduce BUILDPLATFORM. I would suggest use remote builder (x86-64) to push to the registry and not use your local.
I’m still confused, what role (any remote/local) builder plays here. There is nothing to build; the image is ready. Why would the BUILDPLATFORM
change that?
I would suggest use remote builder (x86-64) to push to the registry and not use your local.
Funny enough I just gave it another try locally and that is working now:
fly deploy --local-only
==> Verifying app config
--> Verified app config
==> Building image
Searching for image 'evcc/evcc:latest' locally...
image found: sha256:355dbe063b2cedf635daf22c1159fba1d757f932cc628e0b9069a29ca6ba9279
==> Pushing image to fly
The push refers to repository [registry.fly.io/evcc-demo]
fa96e5061e5a: Pushed
89e30b2e6462: Pushed
08a2ff92d5f1: Pushed
ce6e84bf6850: Pushed
f87ea68c3406: Pushed
34d5ebaa5410: Mounted from evcc
deployment-01GRNXM9JDEWWCJHYBQH73QD0R: digest: sha256:91b6350ee11b9d7b27b812c3dc065233bbc4eab06872d12837d2c224cce2d7c3 size: 1573
--> Pushing image done
==> Creating release
--> release v2 created
--> You can detach the terminal anytime without stopping the deployment
==> Monitoring deployment
Logs: https://fly.io/apps/evcc-demo/monitoring
1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v2 deployed successfully
and
flyctl deploy --local-only --config packaging/fly.toml
==> Verifying app config
--> Verified app config
==> Building image
Searching for image 'evcc/evcc:latest' locally...
image found: sha256:355dbe063b2cedf635daf22c1159fba1d757f932cc628e0b9069a29ca6ba9279
==> Pushing image to fly
The push refers to repository [registry.fly.io/evcc-demo]
fa96e5061e5a: Layer already exists
89e30b2e6462: Layer already exists
08a2ff92d5f1: Layer already exists
ce6e84bf6850: Layer already exists
f87ea68c3406: Layer already exists
34d5ebaa5410: Layer already exists
deployment-01GRNXTPR6ZPPY0K3MGBTVEVV6: digest: sha256:91b6350ee11b9d7b27b812c3dc065233bbc4eab06872d12837d2c224cce2d7c3 size: 1573
--> Pushing image done
==> Creating release
--> release v3 created
--> You can detach the terminal anytime without stopping the deployment
==> Monitoring deployment
Logs: https://fly.io/apps/evcc-demo/monitoring
1 desired, 1 placed, 1 healthy, 0 unhealthy
--> v3 deployed successfully
No this won’t work, since you are pushing from M1 (arm64) and deploying to an amd64 VM. The image architecture are different. It is trying to deploy an arm64 image on an amd64 VM.
I disagree. The build is multi-arch including linux/arm64. Imho this should work (and is actually how I’m doing that for other images).