Containers - New scheduling policy for Containers to configure image and instance from Durable Objects
- Announced
- Tags
- Containers
- Severity
- info, set by
reef/rss-rule-v1 - Source
- https://developers.cloudflare.com/changelog/post/2026-09-30-durable-object-scheduling-policy/
<p><a href="https://developers.cloudflare.com/containers/">Containers</a> now support the <code>durable_object</code> scheduling policy in public beta. This policy lets a Durable Object select the image and instance size for a Container at runtime instead of using one centrally managed configuration for the application.</p> <p>To use custom images, configure the policy and one or more named images in Wrangler:</p> <div data-nb-tabs data-nb-sync-key="wranglerConfig" class><div class="relative flex border-b border-border" role="tablist" data-nb-tabs-list><span class="bg-primary pointer-events-none absolute -bottom-px h-0.5 rounded-t-sm transition-[left,width] duration-200 ease-out" data-nb-tabs-indicator aria-hidden="true"></span></div><div class="mt-3"><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="wrangler.jsonc" class><figure class="nb-code-figure" data-nb-lang="jsonc"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="jsonc" data-nb-lang="jsonc"><code><span class="line"><span class="nb-shiki-140thh">{</span></span> <span class="line"><span class="nb-shiki-dzsirb"> "containers"</span><span class="nb-shiki-140thh">: [</span></span> <span class="line"><span class="nb-shiki-140thh"> {</span></span> <span class="line"><span class="nb-shiki-dzsirb"> "class_name"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"AgentComputer"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-dzsirb"> "scheduling_policy"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"durable_object"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-dzsirb"> "images"</span><span class="nb-shiki-140thh">: {</span></span> <span class="line"><span class="nb-shiki-dzsirb"> "base"</span><span class="nb-shiki-140thh">: {</span></span> <span class="line"><span class="nb-shiki-dzsirb"> "dockerfile"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"./container/Dockerfile"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> ],</span></span> <span class="line"><span class="nb-shiki-140thh">}</span></span></code></pre></figure></div><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="wrangler.toml" class><figure class="nb-code-figure" data-nb-lang="toml"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="toml" data-nb-lang="toml"><code><span class="line"><span class="nb-shiki-140thh">[[</span><span class="nb-shiki-1t8gfj">containers</span><span class="nb-shiki-140thh">]]</span></span> <span class="line"><span class="nb-shiki-140thh">class_name = </span><span class="nb-shiki-mdbnqw">"AgentComputer"</span></span> <span class="line"><span class="nb-shiki-140thh">scheduling_policy = </span><span class="nb-shiki-mdbnqw">"durable_object"</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-140thh">[</span><span class="nb-shiki-1t8gfj">containers</span><span class="nb-shiki-140thh">.</span><span class="nb-shiki-1t8gfj">images</span><span class="nb-shiki-140thh">.</span><span class="nb-shiki-1t8gfj">base</span><span class="nb-shiki-140thh">]</span></span> <span class="line"><span class="nb-shiki-140thh">dockerfile = </span><span class="nb-shiki-mdbnqw">"./container/Dockerfile"</span></span></code></pre></figure></div></div></div><script type="module" src="https://developers.cloudflare.com/home/runner/work/cloudflare-docs/cloudflare-docs/src/components/ui/tabs/Tabs.astro?astro&type=script&index=0&lang.ts"></script> <p>Wrangler prepares each image and exposes its immutable reference through <code>ctx.container.images</code>. Supply that reference and an instance size when you start the Container:</p> <div><div data-nb-tabs data-nb-sync-key="workersExamples" class><div class="relative flex border-b border-border" role="tablist" data-nb-tabs-list><span class="bg-primary pointer-events-none absolute -bottom-px h-0.5 rounded-t-sm transition-[left,width] duration-200 ease-out" data-nb-tabs-indicator aria-hidden="true"></span></div><div class="mt-3"><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="JavaScript" class><figure class="nb-code-figure nb-code-figure-titled" data-nb-lang="js"><figcaption class="nb-code-title"><span class="nb-code-title-name">src/index.js</span><span class="nb-code-title-lang">js</span></figcaption><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="js" data-nb-lang="js"><code><span class="line"><span class="nb-shiki-dzsirb">this</span><span class="nb-shiki-140thh">.ctx.container.</span><span class="nb-shiki-1t8gfj">start</span><span class="nb-shiki-140thh">({</span></span> <span class="line"><span class="nb-shiki-140thh"> image: </span><span class="nb-shiki-dzsirb">this</span><span class="nb-shiki-140thh">.ctx.container.images.base,</span></span> <span class="line"><span class="nb-shiki-140thh"> enableInternet: </span><span class="nb-shiki-dzsirb">false</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instance: </span><span class="nb-shiki-mdbnqw">"standard-2"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh">});</span></span></code></pre></figure></div><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="TypeScript" class><figure class="nb-code-figure nb-code-figure-titled" data-nb-lang="ts"><figcaption class="nb-code-title"><span class="nb-code-title-name">src/index.ts</span><span class="nb-code-title-lang">ts</span></figcaption><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="ts" data-nb-lang="ts"><code><span class="line"><span class="nb-shiki-dzsirb">this</span><span class="nb-shiki-140thh">.ctx.container.</span><span class="nb-shiki-1t8gfj">start</span><span class="nb-shiki-140thh">({</span></span> <span class="line"><span class="nb-shiki-140thh"> image: </span><span class="nb-shiki-dzsirb">this</span><span class="nb-shiki-140thh">.ctx.container.images.base,</span></span> <span class="line"><span class="nb-shiki-140thh"> enableInternet: </span><span class="nb-shiki-dzsirb">false</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instance: </span><span class="nb-shiki-mdbnqw">"standard-2"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh">});</span></span></code></pre></figure></div></div></div></div> <p>The <code>durable_object</code> policy also supports the new <a href="https://developers.cloudflare.com/containers/guides/image-management/#use-the-cloudflare-managed-image"><code>cloudflare/debian-trixie</code> Cloudflare-managed image</a>, which includes Node.js 24.20.0 on Debian Trixie slim. Start it directly without configuring a named image.</p> <p>Durable Object-managed Container instances have independent lifecycles and do not participate in application-wide image rollouts.</p> <p>For configuration, runtime sizing, snapshots, and update behavior, refer to <a href="https://developers.cloudflare.com/containers/configuration/scheduling-policy/">Scheduling Policies</a>.</p>
The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.