{
  "slug": "wrangler-containers-configure-dockerhub-credentials-and-reference-dockerhub-imag-a49fabc84e56",
  "title": "wrangler containers configure DockerHub credentials and reference DockerHub images",
  "tools": [
    "wrangler"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-03-03T21:50:34.000Z",
  "announced_at": "2026-03-03T21:50:34.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "For a private Docker Hub image, configure credentials for `docker.io` with a read-only Docker Hub personal access token, then set the container `image` to its fully qualified Docker Hub reference. Local development with a private image also requires authenticating to the registry locally.",
    "examples": [
      "printf '%s' \"$DOCKERHUB_PAT\" | npx wrangler containers registries configure docker.io --dockerhub-username=<YOUR_DOCKERHUB_USERNAME> --secret-name=<SECRET_NAME> --skip-confirmation",
      "{\"containers\":[{\"image\":\"docker.io/<NAMESPACE>/<REPOSITORY>:<TAG>\"}]}"
    ],
    "gotchas": [
      "Version: 4.70.0",
      "DOMAIN (`docker.io`) (required): Registry domain to configure.",
      "--dockerhub-username: Docker Hub username; use with `docker.io`. The secret is a Docker Hub personal access token.",
      "--secret-name: Name Wrangler stores the registry credentials under.",
      "--skip-confirmation: Use for non-interactive runs.",
      "--secret-store-id: ID of the Secrets Store to use for registry credentials.",
      "Credential flags: `--dockerhub-username`, `--aws-access-key-id`, and `--gar-email` are mutually exclusive; use the flag matching the registry.",
      "containers[].image (required): For this task, set it to `docker.io/<NAMESPACE>/<REPOSITORY>:<TAG>`.",
      "Prerequisite: Use a Docker Hub personal access token with read-only access for the private image.",
      "Prerequisite: Wrangler stores the secret in Secrets Store; if no Secrets Store exists, Wrangler prompts to create one.",
      "Prerequisite: For a private Docker Hub image in local development, authenticate to the registry locally, for example with `docker login`.",
      "Docs conflict: Current docs say the `containers` configuration is an array (`containers: [{\"image\": ...}]`), while the release note example shows an object. Used the documented current configuration shape. Current docs scope direct external registry references and configured credentials to the `default` scheduling policy; `durable_object` requires pushing the image to Cloudflare's managed registry."
    ]
  },
  "why_it_matters": "Configure a Worker container to use a private DockerHub image during development or deployment.",
  "sources": [
    "https://github.com/cloudflare/workers-sdk/releases/tag/wrangler%404.70.0",
    "https://developers.cloudflare.com/containers/guides/image-management/",
    "https://developers.cloudflare.com/workers/wrangler/commands/containers/"
  ],
  "rank": 0.97037,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v1+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "backfill-20261007",
    "verdict_id": "backfill-20261007:backfill-20261007-1563e00f63b688f3-0:gate",
    "evidence_hash": "466d88208f30055fac260a830134b81c67385aa8695f145eead52bc09f8c3478"
  },
  "review": {
    "draft_hash": "8e16dcd5b1471cf1a5bd1cf157639a0cf462874f5d1c9df63f7313548249c7fa",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "backfill-20261007:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.77 (>= 0.6 needed)."
  }
}
