원클릭으로
devcontainer
DevContainer runtimes, CLI tools, and version parity with Dagger
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
DevContainer runtimes, CLI tools, and version parity with Dagger
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Coding patterns and conventions (package design, types, DI, docs)
Creating a new package in the monorepo
Running CI locally with Dagger
Debugging (source maps, cache, test failures)
Installing a package dependency
Linting and formatting (ESLint, Biome, auto-fix)
| name | devcontainer |
| description | DevContainer runtimes, CLI tools, and version parity with Dagger |
VS Code docs: Developing inside a Container
The DevContainer is defined in .devcontainer/ and is the canonical development environment for this repo. Opening the repo in VS Code triggers a prompt to reopen in the container, which builds the image and mounts the workspace at /workspace.
The main repo is mounted from your local computer, so files changes persist across devcontainer reboots. It also means credentials for tools like Git or Claude Code can be injected so you don't have to re-auth every time.
Goal: every runtime, CLI tool, and script alias needed for development must be available immediately after the container starts, with no manual setup steps.
| Tool | Purpose | Notes |
|---|---|---|
| Node.js | JS runtime | Version pinned via ARG NODE_VERSION in Dockerfile |
| pnpm | Package management | Version pinned via ARG PNPM_VERSION |
| Go | Golang runtime (primarily used by Dagger) | Version pinned via ARG GO_VERSION; also installs gopls |
| Dagger CLI | Mirror CI execution locally | Version pinned via ARG DAGGER_VERSION |
| Docker | docker-outside-of-docker devcontainer feature | Shares the host Docker socket — required to run Dagger |
| Brew | Package management for CLI tools | Useful for installing some of the other tools, should rarely be required outside devcontainer setup |
| Nx | Monorepo task runner | Available after running pnpm i |
| Local Scripts | Complicated combos of tasks in a single command | /workspace/scripts/commands is on PATH, exposing these shortcuts |
The Dagger CI pipeline runs in its own container — it does not use the DevContainer image. Versions are specified separately in two places and must be kept in sync:
| Runtime | DevContainer | Dagger |
|---|---|---|
| Node.js | ARG NODE_VERSION in .devcontainer/Dockerfile | nodeVersion in dagger/test-and-build/main.go and dagger/modules/pnpm/main.go |
| pnpm | ARG PNPM_VERSION in .devcontainer/Dockerfile | pnpmVersion in dagger/test-and-build/main.go |
| dagger | ARG DAGGER_VERSION in .devcontainer/Dockerfile | engineVersion in each dagger.json |
| Debian | base image tag in .devcontainer/Dockerfile (debian13) | DefaultVersion() in dagger/modules/debian/main.go ("13.3") |
When upgrading a runtime version, update all locations in the table above. A mismatch means dagger-test runs under a different Node/pnpm version than local development — bugs that only reproduce in CI are a common symptom.