diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4f62a3a..2134d26 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,7 +5,7 @@ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile "image": "mcr.microsoft.com/devcontainers/base:noble", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, "ghcr.io/pablozaiden/devcontainers-features/bun": {} }, "remoteEnv": { diff --git a/examples/complex-workspace/.devcontainer/devcontainer.json b/examples/complex-workspace/.devcontainer/devcontainer.json index 4e39306..b5151ae 100644 --- a/examples/complex-workspace/.devcontainer/devcontainer.json +++ b/examples/complex-workspace/.devcontainer/devcontainer.json @@ -4,8 +4,8 @@ "image": "mcr.microsoft.com/devcontainers/base:noble", "features": { "ghcr.io/devcontainers/features/azure-cli:1": {}, - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, "ghcr.io/devcontainers/features/node:1": {}, "ghcr.io/devcontainers/features/terraform:1": {} } -} \ No newline at end of file +} diff --git a/examples/smoke-workspace/.devcontainer/devcontainer.json b/examples/smoke-workspace/.devcontainer/devcontainer.json index 482f7d8..cdcc2ff 100644 --- a/examples/smoke-workspace/.devcontainer/devcontainer.json +++ b/examples/smoke-workspace/.devcontainer/devcontainer.json @@ -1,7 +1,7 @@ { "name": "devbox-smoke-workspace", - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "image": "mcr.microsoft.com/devcontainers/base:noble", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {} + "ghcr.io/devcontainers/features/docker-in-docker:3": {} } } diff --git a/src/templates.ts b/src/templates.ts index 8d2ed9b..697003d 100644 --- a/src/templates.ts +++ b/src/templates.ts @@ -28,7 +28,7 @@ export interface DevboxTemplateSummary { const BASE_IMAGE = "mcr.microsoft.com/devcontainers/base:noble"; const BASE_NAME = "noble"; -const DOCKER_IN_DOCKER_FEATURE = "ghcr.io/devcontainers/features/docker-in-docker:2"; +const DOCKER_IN_DOCKER_FEATURE = "ghcr.io/devcontainers/features/docker-in-docker:3"; const DOTNET_FEATURE = "ghcr.io/devcontainers/features/dotnet:2"; const GO_FEATURE = "ghcr.io/devcontainers/features/go:1"; const JAVA_FEATURE = "ghcr.io/devcontainers/features/java:1"; diff --git a/tests/core.test.ts b/tests/core.test.ts index 2be7e27..1be5d86 100644 --- a/tests/core.test.ts +++ b/tests/core.test.ts @@ -436,7 +436,7 @@ describe("resolveWorkspaceConfig", () => { expect(rebuildStyleResolution.config).toEqual({ image: "mcr.microsoft.com/devcontainers/base:noble", features: { - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, "ghcr.io/devcontainers-extra/features/uv:1": {}, }, }); diff --git a/tests/examples.test.ts b/tests/examples.test.ts index e112105..e0b2e48 100644 --- a/tests/examples.test.ts +++ b/tests/examples.test.ts @@ -386,9 +386,9 @@ describe("example workspaces (simulated host tools)", () => { expect(await readFile(String(fixture.sourceConfigPath), "utf8")).toBe(sourceBefore); const generatedConfig = await readJson(fixture.generatedConfigPath); - expect(generatedConfig.image).toBe("mcr.microsoft.com/devcontainers/base:ubuntu"); + expect(generatedConfig.image).toBe("mcr.microsoft.com/devcontainers/base:noble"); expect(generatedConfig.features).toEqual({ - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, }); expect(generatedConfig.runArgs).toEqual(["--name", "devbox-smoke-workspace-5001", "-p", "5001:5001"]); expect(generatedConfig.mounts).toEqual([]); @@ -485,7 +485,7 @@ describe("example workspaces (simulated host tools)", () => { const generatedConfig = await readJson(fixture.generatedConfigPath); expect(generatedConfig.features).toEqual({ "ghcr.io/devcontainers/features/azure-cli:1": {}, - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, "ghcr.io/devcontainers/features/node:1": {}, "ghcr.io/devcontainers/features/terraform:1": {}, }); @@ -544,7 +544,7 @@ describe("example workspaces (simulated host tools)", () => { const generatedConfig = await readJson(fixture.generatedConfigPath); expect(generatedConfig.image).toBe("mcr.microsoft.com/devcontainers/base:noble"); expect(generatedConfig.features).toEqual({ - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, }); expect(generatedConfig.postCreateCommand).toBeUndefined(); @@ -554,7 +554,7 @@ describe("example workspaces (simulated host tools)", () => { expect(state.template.name).toBe("ubuntu"); expect(state.template.image).toBe("mcr.microsoft.com/devcontainers/base:noble"); expect(state.template.pinnedReference).toBe( - "mcr.microsoft.com/devcontainers/base:noble + ghcr.io/devcontainers/features/docker-in-docker:2", + "mcr.microsoft.com/devcontainers/base:noble + ghcr.io/devcontainers/features/docker-in-docker:3", ); expect(state.template.runtimeVersion).toBe("Ubuntu noble"); diff --git a/tests/templates.test.ts b/tests/templates.test.ts index 5180f0b..e17ddc2 100644 --- a/tests/templates.test.ts +++ b/tests/templates.test.ts @@ -11,7 +11,7 @@ describe("built-in templates", () => { expect.objectContaining({ image: "mcr.microsoft.com/devcontainers/base:noble", features: expect.objectContaining({ - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, }), }), ); @@ -29,13 +29,13 @@ describe("built-in templates", () => { expect(template.base).toBe("noble"); expect(template.image).toBe("mcr.microsoft.com/devcontainers/base:noble"); expect(template.pinnedReference).toBe( - "mcr.microsoft.com/devcontainers/base:noble + ghcr.io/devcontainers/features/docker-in-docker:2 + ghcr.io/devcontainers/features/node:1 + ghcr.io/devcontainers-extra/features/bun:1", + "mcr.microsoft.com/devcontainers/base:noble + ghcr.io/devcontainers/features/docker-in-docker:3 + ghcr.io/devcontainers/features/node:1 + ghcr.io/devcontainers-extra/features/bun:1", ); expect(template.runnerCompatible).toBe(true); expect(template.config).toEqual({ image: "mcr.microsoft.com/devcontainers/base:noble", features: { - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:3": {}, "ghcr.io/devcontainers/features/node:1": {}, "ghcr.io/devcontainers-extra/features/bun:1": {}, }, @@ -51,7 +51,7 @@ describe("built-in templates", () => { base: "noble", image: "mcr.microsoft.com/devcontainers/base:noble", pinnedReference: - "mcr.microsoft.com/devcontainers/base:noble + ghcr.io/devcontainers/features/docker-in-docker:2 + ghcr.io/devcontainers/features/node:1 + ghcr.io/devcontainers-extra/features/bun:1", + "mcr.microsoft.com/devcontainers/base:noble + ghcr.io/devcontainers/features/docker-in-docker:3 + ghcr.io/devcontainers/features/node:1 + ghcr.io/devcontainers-extra/features/bun:1", runtimeVersion: "Node.js + Bun", languages: ["node", "bun", "typescript", "javascript"], runnerCompatible: true,