{
  "slug": "flyctl-build-accepts-dockerfile-urls-b8fe9c6e325f",
  "title": "flyctl [build] accepts Dockerfile URLs",
  "tools": [
    "flyctl"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-07-27T19:35:48.000Z",
  "announced_at": "2026-07-27T19:35:48.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When `[build].dockerfile` is hosted remotely, set it to the Dockerfile URL and deploy from the repository root; flyctl keeps the project root as the default build context. The URL is downloaded when a Dockerfile builder needs it and the same copy is reused throughout the deploy.",
    "examples": [
      "[build]\ndockerfile = \"<Dockerfile URL>\"\n\nflyctl deploy"
    ],
    "gotchas": [
      "Version: v0.4.75",
      "[build].dockerfile: Accepts a relative Dockerfile path or a URL; defaults to `Dockerfile` in the application root. It does not change the Docker context, which defaults to the project root.",
      "Prerequisite: Install flyctl and sign in to a Fly account before deploying.",
      "The URL is fetched only when a Dockerfile builder needs it.",
      "Downloads have a 30 second timeout and a 10 MiB limit.",
      "The downloaded file is stored in a private temporary directory that is cleaned up before deploy continues.",
      "Redirects drop query-bearing Referer headers and refuse HTTPS-to-HTTP downgrades.",
      "Local Dockerfiles and non-Dockerfile builds are unchanged."
    ]
  },
  "why_it_matters": "Deploy a repository whose `[build] dockerfile` is hosted remotely while retaining the local build context.",
  "before": "Set `[build] dockerfile` to a local path for Dockerfile builds.",
  "sources": [
    "https://github.com/superfly/flyctl/releases/tag/v0.4.75",
    "https://github.com/superfly/flyctl/pull/5021",
    "https://github.com/superfly/docs/blob/main/reference/configuration.html.markerb",
    "https://github.com/superfly/flyctl"
  ],
  "rank": 0.97027,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-20261016",
    "verdict_id": "wave1b-20261016:wave1b-20261016-e9809e2b7a43ac86-1:gate",
    "evidence_hash": "a5a308077223f77c1c4d613bdd39b7990c673ef9d4bcbdd9a07a9ffec953c9e5"
  },
  "review": {
    "draft_hash": "5fb488a4abe270363a60da7e01a03c809df2113860dbac84342fa9273c967fb2",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-20261016:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.70 (>= 0.6 needed)."
  }
}
