Claude Code 상세 사용법 27: Dev Container로 팀 실행 환경 맞추기 | DAKER 커뮤니티
Claude Code 상세 사용법 27: Dev Container로 팀 실행 환경 맞추기
Claude Code 공식 dev container 문서는 Claude Code를 컨테이너 안에서 실행해 팀원이 같은 도구, 의존성, 셸 환경을 쓰게 하는 방법을 설명한다. 핵심은 “Claude가 내 노트북에서 마음대로 돈다”가 아니라, 프로젝트 도구 체인 안에서 명령을 실행하게 만드는 것이다.
위 SVG는 Mermaid 기반 흐름도를 DAKER 편집기용 이미지로 옮긴 것이다.
1. 최소 설정부터 넣는다
.devcontainer/devcontainer.json에 Claude Code feature를 추가한다. feature 버전은 설치 스크립트 버전이고, Claude Code 자체는 기본적으로 최신 버전으로 설치된다.
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
}
}VS Code나 Codespaces에서 Rebuild Container를 실행한 뒤, 컨테이너 터미널에서 claude를 실행해 로그인한다. 브라우저 콜백이 컨테이너로 돌아오지 않으면 브라우저에 표시된 코드를 터미널의 입력 프롬프트에 붙여 넣는 방식도 문서에 안내되어 있다.
2. 인증과 설정은 volume으로 유지한다
컨테이너를 rebuild하면 홈 디렉터리가 사라질 수 있다. Claude Code는 인증 토큰, 사용자 설정, 세션 기록을 ~/.claude 아래에 저장하므로 named volume을 붙인다.
{
"mounts": [
"source=claude-code-config-${devcontainerId},target=/home/node/.claude,type=volume"
]
}팀 저장소라면 프로젝트 MCP는 루트의 .mcp.json에 두고, stdio MCP가 요구하는 바이너리는 Dockerfile에서 설치한다. 이렇게 해야 “내 컴퓨터에서는 된다”가 아니라 컨테이너 안에서 재현된다.
두 번째 Mermaid 기반 체크리스트는 자동 실행 전에 확인할 보안 경계를 요약한다.
3. 자동 실행은 격리 후에 판단한다
공식 문서는 컨테이너 안에서 non-root 사용자로 실행할 때 --dangerously-skip-permissions를 검토할 수 있다고 설명하지만, 이 플래그는 검토 기회를 없앤다. bind-mounted workspace의 파일은 여전히 호스트 저장소에 반영되고, 컨테이너 네트워크가 닿는 곳으로 데이터가 나갈 수 있다.
claude --dangerously-skip-permissions실무 기본값은 더 보수적으로 잡는다. 민감 저장소는 ask 또는 auto mode로 시작하고, 컨테이너에는 ~/.ssh, cloud credential file, 장기 토큰을 마운트하지 않는다. 대신 Codespaces secret, 짧은 수명 토큰, 네트워크 egress allowlist를 쓴다.
4. 팀 정책은 파일 위치가 중요하다
Linux 컨테이너에서는 /etc/claude-code/managed-settings.json으로 관리 설정을 적용할 수 있다. 다만 저장소 Dockerfile에 들어간 정책은 저장소를 고칠 권한이 있는 사람이 바꿀 수 있다. 우회가 절대 안 되는 정책은 서버 관리 설정이나 조직 장비 관리로 배포해야 한다.
Senior takeaway: 바이브코딩에서 dev container는 편의 기능이 아니라 재현성 장치다. Claude Code, MCP, 테스트 자동화, 코드 리뷰 루프가 모두 같은 컨테이너에서 돌 때 AI 코딩 결과를 팀 단위로 비교하고 운영할 수 있다.