Skip to content

devcontainer: use Compose v2 in docker-in-docker#90

Merged
bilby91 merged 1 commit into
mainfrom
fix-dind-compose-v2
Jun 12, 2026
Merged

devcontainer: use Compose v2 in docker-in-docker#90
bilby91 merged 1 commit into
mainfrom
fix-dind-compose-v2

Conversation

@bilby91

@bilby91 bilby91 commented Jun 12, 2026

Copy link
Copy Markdown
Member

Fix

After #89, the prebuild got much further — amd64 succeeded, but arm64 failed installing the docker-in-docker feature:

error: externally-managed-environment
ERROR: Feature "Docker (Docker-in-Docker)" failed to install!

The feature defaults to Compose v1 (dockerDashComposeVersion: v1). There's no Compose-v1 standalone binary for arm64, so it falls back to pip install docker-compose, which now fails on bookworm under PEP 668. amd64 passed because the v1 binary exists there.

This pins the feature to v2 — the docker compose CLI plugin that the integration suite (test/integration, ci.yml) already uses. Compose v1 is EOL anyway.

Verification

Only validatable by the DevContainer Prebuild run on main after merge (the image builds nowhere else). amd64 already builds clean; this unblocks arm64 so the multi-arch :latest manifest can finally publish.

🤖 Generated with Claude Code

The docker-in-docker feature defaults to Compose v1, which has no arm64
standalone binary and falls back to `pip install docker-compose` — that
now fails on bookworm under PEP 668 (externally-managed-environment), so
the arm64 prebuild broke (amd64 passed because the v1 binary exists).

Pin dockerDashComposeVersion to v2, the `docker compose` CLI plugin the
integration suite already uses. v1 is EOL regardless.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@bilby91, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 1 hour, 49 minutes, and 39 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 22a00c6b-2f4b-4f35-882f-49e723d0be45

📥 Commits

Reviewing files that changed from the base of the PR and between 7eab6f0 and e76dc50.

📒 Files selected for processing (1)
  • .devcontainer/devcontainer-build.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-dind-compose-v2

Comment @coderabbitai help to get the list of available commands and usage tips.

@bilby91 bilby91 merged commit e8d9ab7 into main Jun 12, 2026
5 of 6 checks passed
bilby91 added a commit that referenced this pull request Jun 12, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant