Docker 컨테이너 환경에서 Claude Code 첫 실행 시 발생하는 3가지 문제와 해결책
새 컨테이너의 Claude Code는 온보딩, 디렉터리 신뢰, API 키 확인에서 정지합니다. 무인 환경에서는 ~/.claude.json에 사전 설정을 주입해야 합니다.
배너를 출력하고 대기 중인 에이전트도 바이트를 방출하므로 로그상 정상처럼 보이지만 실제로는 입력을 기다리며 멈춰 있습니다.
순서대로 마주치는 3가지 관문
| 단계 | 질문 내용 |
|---|---|
| 초기 설정 마법사 | 텍스트 테마 선택 |
| 워크스페이스 신뢰 확인 | 이 프로젝트를 신뢰합니까? |
| API 키 확인 | 이 API 키를 사용하시겠습니까? |
일부만 해결하면 다음 관문에서 멈추게 됩니다.
실측 비교 매트릭스
깨끗한 HOME 환경에서 claude 2.1.220으로 측정한 결과:
| 사전 설정 | 에이전트 동작 |
|---|---|
| 설정 없음 | 테마 선택에서 멈춤 |
| settings.json에 theme만 설정 | 여전히 테마 선택에서 멈춤 |
| .claude.json에 hasCompletedOnboarding 설정 | 신뢰 확인 대화상자로 진행 |
| + 확인된 경로에 hasTrustDialogAccepted 설정 | 프롬프트 진입 ("Not logged in") |
| + 환경 변수 ANTHROPIC_API_KEY 설정 | API 키 확인에서 멈춤 |
| + customApiKeyResponses.approved 설정 | 즉시 작업 가능 상태 진입 |
심볼릭 링크 해결의 함정
~/.claude.json의 경로는 반드시 실제 정규화된 경로(canonical)여야 합니다.
export function trustKeyFor(root: string): string {
try {
return realpathSync(root);
} catch {
return root;
}
}API 키 승인의 복병
API 키 확인은 기본값이 2. No (recommended)로 지정되어 있습니다. CLI는 키의 마지막 20자를 승인 토큰으로 저장합니다.
export function approvalTokenFor(apiKey: string): string {
return apiKey.slice(-20);
}작동하지 않는 우회책
--permission-mode bypassPermissions 옵션은 디렉터리 신뢰 대화상자를 건너뛰지 못합니다.
테마 선택은 단순 취향이지만 파일 삭제는 중대한 결정입니다.
환경 초기화는 자동화하되 위험 도구 실행 권한 확인은 엄격히 유지합니다.
const trust: ProjectTrust = {
hasTrustDialogAccepted: true,
hasCompletedProjectOnboarding: true,
projectOnboardingSeenCount: 0,
allowedTools: [],
};클라우드 환경 구동은 클라우드에서 Claude Code 실행, 연결 안정성은 직접 호스팅하지 않는 터미널 관찰에서 확인하실 수 있습니다.
직접적인 답변
컨테이너에서 Claude Code가 멈추는 이유는 무엇인가요?
테마 선택, 디렉터리 신뢰, API 키 확인 등 대화형 입력 대기가 발생하기 때문입니다.
비대화형으로 Claude Code를 실행하려면 어떻게 해야 하나요?
실행 전 ~/.claude.json에 온보딩 및 신뢰 설정을 작성하고 환경 변수로 키를 전달합니다.
어떻게 측정되었나요?
Claude Code 2.1.220 버전으로 실제 PTY 환경에서 생성 파일을 분석하여 측정했습니다.