Skip to content

Support DO-managed Container images in local dev - #15514

Draft
thomasgauvin wants to merge 5 commits into
cloudflare:nafeez/CC-8364-top-level-durable-object-containersfrom
thomasgauvin:codex/pr-15480-miniflare-local-dev
Draft

Support DO-managed Container images in local dev#15514
thomasgauvin wants to merge 5 commits into
cloudflare:nafeez/CC-8364-top-level-durable-object-containersfrom
thomasgauvin:codex/pr-15480-miniflare-local-dev

Conversation

@thomasgauvin

@thomasgauvin thomasgauvin commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • build or pull every named image for Durable Object-managed Containers during local development
  • inject the local image-tag map through EXPERIMENTAL_CLOUDFLARE_CONTAINER_IMAGES
  • attach the Container capability to Miniflare Durable Objects while preserving legacy single-image behavior
  • use the first named image as the concrete Workerd attachment so same-session snapshot restore has a valid fallback
  • generate deterministic, collision-resistant local tags for every named image

This is stacked on #15480.

Testing

  • Wrangler container config suite: 33 tests passed, including case and punctuation collision coverage
  • Docker-backed Wrangler E2E: two Dockerfiles built with distinct tags; two Durable Object instances started the requested image and returned the correct image-specific payload
  • containers-shared type checks passed
  • formatting and lint checks passed on all changed files
  • published wrangler@15514 E2E with the demo's production wrangler.jsonc: built minimal and toolbox; exercised runtime-selected image startup, HTTP, exec, failure propagation, filesystem persistence, and cleanup
  • published wrangler@15514 snapshot proof: created a full-container snapshot, destroyed the source execution, restored it, and verified the captured filesystem state

Known local runtime constraint

Workerd currently associates snapshot restoration with the namespace attachment image. The first configured named image is therefore the restore-compatible fallback in local development. Other named images can be built, selected, started, and exercised locally, but restoring snapshots created from a non-default named image still requires a Workerd runtime change.


  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:
  • Public documentation

devin-ai-integration[bot]

This comment was marked as resolved.

@pkg-pr-new

pkg-pr-new Bot commented Sep 4, 2026

Copy link
Copy Markdown
@cloudflare/autoconfig

npm i https://pkg.pr.new/@cloudflare/autoconfig@15514

@cloudflare/build-output-utils

npm i https://pkg.pr.new/@cloudflare/build-output-utils@15514

@cloudflare/codemods

npm i https://pkg.pr.new/@cloudflare/codemods@15514

@cloudflare/config

npm i https://pkg.pr.new/@cloudflare/config@15514

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@15514

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@15514

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@15514

miniflare

npm i https://pkg.pr.new/miniflare@15514

@cloudflare/pages-functions

npm i https://pkg.pr.new/@cloudflare/pages-functions@15514

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@15514

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@15514

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@15514

@cloudflare/vitest-plugin

npm i https://pkg.pr.new/@cloudflare/vitest-plugin@15514

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@15514

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@15514

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@15514

wrangler

npm i https://pkg.pr.new/wrangler@15514

commit: 0cd47b6

@changeset-bot

changeset-bot Bot commented Sep 4, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 0cd47b6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
wrangler Minor
@cloudflare/vite-plugin Patch
@cloudflare/vitest-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@thomasgauvin
thomasgauvin marked this pull request as draft September 4, 2026 21:44
@skepticfx
skepticfx force-pushed the nafeez/CC-8364-top-level-durable-object-containers branch 6 times, most recently from 30e6d43 to b0fe391 Compare September 6, 2026 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

3 participants