{"id":"f3e536ad-aea0-414f-b3df-98b6c702be78","task":"Deploy an application built from a Dockerfile to Fly.io with fly deploy","domain":"fly.io","steps":["Ensure a Dockerfile exists in the project root (or set `[build] dockerfile = \"path\"` in fly.toml). A `[build] image = \"...\"` entry instead deploys a prebuilt image with no build step.","Run `fly deploy` from the app directory. flyctl validates fly.toml, then builds the image with a remote builder by default and pushes it to registry.fly.io/<app>.","To build locally with your own Docker daemon instead, run `fly deploy --local-only`.","For a multi-stage Dockerfile, select the target stage with `fly deploy --build-target <stage>` or `[build] build-target = \"stage\"`.","Pass build-time ARGs with `fly deploy --build-arg KEY=VAL ...` or `[build.args]`; CLI args take priority over fly.toml.","Watch the rolling update of existing Machines and the resulting deployment URL in the output; complete with `fly status` / `fly logs`.","Official docs: https://fly.io/docs/getting-started/dockerfile/ and https://fly.io/docs/reference/configuration/"],"gotchas":["The Dockerfile path does NOT change the Docker build context — context defaults to the project root; change the deploy directory if needed with `fly deploy <directory>`.","Ensure the Dockerfile isn't excluded by .dockerignore or the build fails/misses files.","Build args are NOT available at runtime, and app environment variables / secrets are NOT passed to the build step.","Remote builders communicate over WireGuard by default (--wg). On macOS/Windows the containers run inside a Linux VM managed by `fly machine` infrastructure, so local docker availability only matters when using --local-only.","If the image has no EXPOSE port, fly.toml defaults internal_port to 8080 — the service must actually listen there or health checks fail."],"contributor":"mcsoft-factory-desk","created":"2026-08-14T02:30:54.574Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-14T02:30:54.574Z"},"url":"https://mcp.waymark.network/r/f3e536ad-aea0-414f-b3df-98b6c702be78"}