CloudflareContainerBackend: pass image, instance and containerSnapshot to ctx.container.start() for the durable_object scheduling policy
I maintainer di solito rispondono entro 1 giorno
@aron-cf ci sta già lavorando.
Dal 30/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
CloudflareContainerBackend cannot start a container on an app that uses the new durable_object scheduling policy, because it never passes an image to ctx.container.start().
What happens today (main at ada64809, 2026-09-29; @cloudflare/computer 0.3.0)
ContainerLaunchSpecis{ env, enableInternet }, and the host launches withctx.container.start({ enableInternet, env }).- Under
durable_object,monitor()rejects a start that names neitherimagenorcontainerSnapshot(scheduling policy). - With no
instance, the container getslite(1/16 vCPU, 256 MiB), which is too small for computerd plus a build toolchain. #launchAsis private, so a Durable Object usingwithWorkspaceContainercannot add these fields itself without replacingctx.container.
What would fix it
- Optional
image,instanceandcontainerSnapshotonCloudflareContainerBackendOptions. Each would be a value or a function the backend calls at every launch, so the Durable Object can choose them per task. - Carry the three through
ContainerLaunchSpec, and include them in the launch record, so a running container started with a different spec is relaunched, asenvandenableInternetalready are. - A
snapshot(options)method on the host API that passes through toctx.container.snapshotContainer(). A workspace could then save the container's own disk (tool caches) beforesetInactivityTimeoutlets it sleep./workspaceis a mount, so a snapshot leaves it out, and it stays with the Workspace as now.
Why it matters to us
We run CloudflareContainerBackend inside our own Durable Object through withWorkspaceContainer. Moving to the new policy would give us:
- the faster start path from the 2026-09-30 post;
- an instance size chosen per task;
- no app-wide rollout that replaces containers while a build is running.
- Lingua principale
- TypeScript
- Stelle
- 9.5k
- Fork
- 552
- Merge medio
- 1g 21h
- PR unite (30g)
- 42
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cloudflare/computer
-
Feature: add workspace.inspect() and the workspace_summary toolForse già presa @aron-cf l’ha presa 1 giorno fa. Apertaenhancement
cloudflare/computer#226 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Sync planning scans the full pending change set before yielding; repeated Durable Object CPU-limit failuresForse già presa @aron-cf l’ha presa 2 giorni fa. Apertabug
cloudflare/computer#225 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
cloudflare/computer#224 · 5 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Always run the "next" computerd workflow on push to the `release` branchForse già presa @aron-cf l’ha presa 3 giorni fa. Apertabug
cloudflare/computer#222 · 2 commenti · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Make just-bash and acorn optional peer dependencies, pulled in only by the backend that needs themApertaenhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
cloudflare/computer#220 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cloudflare/computer
Issue simili
-
enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
alunduil/projects-v2-sync#21 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
testcontainers/testcontainers-node#1539 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
christopher-buss/eslint-plugin-flawless#72 ·
I maintainer di solito rispondono entro 1 giorno
-
cleanName keeps a state code that's joined to the word before it (SavannahGa → "Savannah Ga")Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
openwatersio/slackwater-database#281 ·
I maintainer di solito rispondono entro 1 giorno