Disable Moby (not present in Debian Trixie), add minimal devcontainer - #191
Conversation
WalkthroughUpdates Dev Container assets: formats .devcontainer/README.md, augments .devcontainer/complete/devcontainer.json to include docker-outside-of-docker configuration with an explicit moby flag, and adds a new minimal Dev Container definition at .devcontainer/minimal/devcontainer.json with several features configured. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Dev Container Client
participant VS as VS Code / Dev Containers
participant DC as Devcontainer Engine
participant Img as Base Image
participant Feat as Feature Installers
participant Docker as Docker (host)
Dev->>VS: Open folder in container
VS->>DC: Parse devcontainer.json (complete/minimal)
DC->>Img: Pull mcr.microsoft.com/devcontainers/base:bookworm
DC->>Feat: Apply features (AWS CLI, Python, Terraform, Task, TF Docs, pre-commit)
alt complete config
Note over DC,Feat: Install docker-outside-of-docker (version: latest, moby: false)
Feat-->>Docker: Configure access to host Docker
end
DC-->>VS: Start container
VS-->>Dev: Attach to running container
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
.devcontainer/complete/devcontainer.json (1)
21-26: Pin Docker CE to v27 and persist DinD cache
- Pin the Docker engine to version 27 now that the CE apt repo supports Debian Trixie.
- Mount a named volume for
/var/lib/dockerto persist the DinD image cache between rebuilds.- "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { - "version": "latest", - "dockerDashComposeVersion": "v2", - "moby": false - } + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { + "version": "27", + "dockerDashComposeVersion": "v2", + "moby": false + } @@ -end + // Persist DinD image cache between rebuilds (optional) + , + "mounts": [ + "source=devcontainer-docker-data,target=/var/lib/docker,type=volume" + ].devcontainer/minimal/devcontainer.json (3)
6-6: Align Debian base across devcontainers or document the divergence.
Complete uses Debian trixie (via build arg); minimal uses bookworm. This can cause tool/version drift. Either align to the same base or note why minimal intentionally differs.
10-16: Pin feature tool versions for reproducibility.
Avoid “floating latest” to keep rebuilds stable and CI deterministic.Apply version pins (adjust to your vetted versions):
- "ghcr.io/devcontainers/features/aws-cli:1": {}, - "ghcr.io/devcontainers/features/python:1": {}, - "ghcr.io/devcontainers/features/terraform:1": {}, - "ghcr.io/devcontainers-extra/features/go-task:1": {}, - "ghcr.io/devcontainers-extra/features/terraform-docs:1": {}, - "ghcr.io/devcontainers-extra/features/pre-commit:2": {} + "ghcr.io/devcontainers/features/aws-cli:1": { "version": "2" }, + "ghcr.io/devcontainers/features/python:1": { "version": "3.12" }, + "ghcr.io/devcontainers/features/terraform:1": { "version": "1.9.5" }, + "ghcr.io/devcontainers-extra/features/go-task:1": { "version": "3.39.2" }, + "ghcr.io/devcontainers-extra/features/terraform-docs:1": { "version": "0.19.4" }, + "ghcr.io/devcontainers-extra/features/pre-commit:2": { "version": "3.8.0" }
21-26: Consider editor defaults and non-root user.
Optionally add VS Code extensions/settings and use a non-root user to match typical devcontainer conventions.Example:
// "customizations": {}, + "customizations": { + "vscode": { + "extensions": [ + "hashicorp.terraform", + "ms-python.python", + "ms-python.vscode-pylance", + "github.vscode-github-actions" + ] + } + }, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" + // "remoteUser": "root" + // Or explicitly use the default non-root if present in base image (e.g., "vscode") + // "remoteUser": "vscode"
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
.devcontainer/README.md(1 hunks).devcontainer/complete/devcontainer.json(1 hunks).devcontainer/minimal/devcontainer.json(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: build
- GitHub Check: check
🔇 Additional comments (1)
.devcontainer/README.md (1)
3-3: LGTM on formatting tweak.
The blockquote and inline code improve readability without changing meaning.
Summary by CodeRabbit
New Features
Documentation