应用已在 Fly 上,改完 Dockerfile 或 fly.toml 后直接 fly deploy,却碰到:迁移没跑、策略选成一次性全停、或启动后立刻非零退出被 smoke checks 打回。
Fly.io Docs《Deploy an app》(dateModified 可核)说明:fly deploy 属于 Fly Launch,按本地 fly.toml 构建/获取镜像并在一台或多台 Fly Machines 上拉起发布。首次部署会按进程组与服务/卷配置创建一或两台 Machine;未显式定义进程组时,首发常给两台以冗余。后续部署把托管 Machine 作为一组更新。镜像来源优先级包括:--image 或 [build] 指定镜像、fly.toml 构建方式、--dockerfile、本地 Dockerfile 等。带合格 HTTP 服务且尚无公网 IP 时,可自动配置公网 IPv6 与共享 IPv4 Anycast。文档区分 Fly Launch 托管 Machine(带 fly_platform_version 元数据、随 deploy 成组更新)与 fly machine run 等创建的非托管 Machine。Release commands 可在正式部署前于临时 VM 跑一次性命令(如迁移),但临时 VM 不挂载你为应用配置的卷。部署策略可选 rolling(默认,逐台成功后再下一台)、immediate、canary、bluegreen 等。Smoke checks 在 Machine 进入 started 后约 10 秒内监视,若持续非零退出重启则部署失败。本场景据此输出发布简报。禁止声称「生产已发布成功」。