Skip to content

Commit c7e3082

Browse files
bilby91claude
andauthored
devcontainer: pin docker-in-docker to 2.x (#92)
The ":1" pin resolves to a stale frozen 1.x image (the feature has no 1.x releases anymore — it's at 3.x). That old script runs a global `pip install docker-compose` on bookworm/arm64, which fails under PEP 668 (externally-managed-environment) — the arm64 prebuild failure that survived the bookworm pin (#89), the v2-plugin switch (#90), and the dockerDashComposeVersion=none change (#91), because none of them affect which feature version runs. 2.x gates the entire compose/pip block behind `!= none`, so with dockerDashComposeVersion=none there is no pip on arm64 at all. amd64 was unaffected (it gets a prebuilt v1 binary). `docker compose` v2 still comes from the moby-compose package. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 3e13ac9 commit c7e3082

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

.devcontainer/devcontainer-build.json

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,17 @@
1414
"version": "1.26"
1515
},
1616
"ghcr.io/devcontainers/features/github-cli:1": {},
17-
"ghcr.io/devcontainers/features/docker-in-docker:1": {
18-
// "none" skips the legacy `docker-compose` (hyphen) command entirely.
19-
// The repo only uses `docker compose` v2 (runtime/docker/compose.go:
20-
// "legacy docker-compose is not supported"), and the v2 plugin is
21-
// installed separately via the moby-compose package regardless of this
22-
// option. Avoiding the hyphen command is what unblocks arm64: the
23-
// released feature installs Compose v1 there via a global `pip install`,
24-
// which fails on bookworm under PEP 668 (externally-managed-environment).
17+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
18+
// Pin to the 2.x major: ":1" is a stale frozen image (the feature has
19+
// no 1.x releases anymore — current is 3.x) whose old script runs a
20+
// global `pip install docker-compose` on bookworm/arm64 and fails under
21+
// PEP 668 (externally-managed-environment). 2.x gates that whole block
22+
// behind `dockerDashComposeVersion != none`.
23+
//
24+
// "none" skips the legacy `docker-compose` (hyphen) command entirely;
25+
// the repo only uses `docker compose` v2 (runtime/docker/compose.go:
26+
// "legacy docker-compose is not supported"), and the v2 plugin ships
27+
// separately via the moby-compose package regardless of this option.
2528
"dockerDashComposeVersion": "none"
2629
},
2730
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {

0 commit comments

Comments
 (0)