e323764b

By: Michael Lynch <git@mtlynch.io>

Deploy to Fly.io with a Nix-built image instead of a Dockerfile

Build the OCI image with dockerTools.streamLayeredImage (no Docker
daemon, so it works in the NixCI sandbox) and deploy it via a
deploy-to-fly package that pushes to registry.fly.io with skopeo and
runs `fly deploy --image`. The same package drives both NixCI
auto-deploys on master (nix-ci.nix) and manual `nix run .#deploy-to-fly`.

The image adds CA certificates, which the old Alpine image omitted, so
the app's HTTPS calls to S3 and SMTP have trust roots.

Remove the Dockerfile and the now-unused serve-docker and
enable-multiarch-docker scripts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 2s 9s 9s 12s
Eval 9s 1m02s 1m02s 1m12s
Build 15s 8m20s 1m24s 1m40s
Suite 2s 9m33s 1m37s 1m40s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s1m40s