Skip to main content

Development Containers

รัน Claude Code ภายใน dev container สำหรับสภาพแวดล้อมที่สอดคล้องและแยกได้ทั่วทีมของคุณ

development container หรือ dev container ช่วยให้คุณกำหนดสภาพแวดล้อมที่เหมือนกันและแยกได้ซึ่งวิศวกรทุกคนในทีมของคุณสามารถรันได้ ด้วย Claude Code ที่ติดตั้งในคอนเทนเนอร์นั้น คำสั่งที่ Claude รันจะดำเนินการภายในคอนเทนเนอร์แทนที่จะเป็นเครื่องโฮสต์ ในขณะที่การแก้ไขไฟล์โปรเจกต์ของคุณปรากฏใน repository ในเครื่องขณะที่คุณทำงาน

warning

แม้ว่า dev container จะให้การป้องกันที่สำคัญ แต่ไม่มีระบบใดที่ปลอดภัยจากการโจมตีทุกประเภทอย่างสมบูรณ์ เมื่อดำเนินการด้วย --dangerously-skip-permissions dev containers ไม่ป้องกันโปรเจกต์ที่เป็นอันตรายจากการขโมยข้อมูลที่เข้าถึงได้ภายในคอนเทนเนอร์ รวมถึง Claude Code credentials ที่เก็บไว้ใน ~/.claude ใช้ dev containers เฉพาะเมื่อพัฒนากับ repository ที่เชื่อถือได้เท่านั้น และติดตามกิจกรรมของ Claude

เพิ่ม Claude Code ลงใน Dev Container ของคุณ

Claude Code ติดตั้งลงใน dev container ใดๆ ผ่าน Claude Code Dev Container Feature

ขั้นตอนที่ 1: สร้างหรืออัปเดต devcontainer.json

บันทึกสิ่งต่อไปนี้เป็น .devcontainer/devcontainer.json ใน repository ของคุณ หรือเพิ่มบล็อก features ลงในไฟล์ที่มีอยู่:

.devcontainer/devcontainer.json
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
}
}

แทนที่บรรทัด image ด้วย base image ของโปรเจกต์หรือลบออกหากไฟล์ที่มีอยู่ใช้ Dockerfile

ขั้นตอนที่ 2: Rebuild Container

เปิด VS Code Command Palette ด้วย Cmd+Shift+P บน Mac หรือ Ctrl+Shift+P บน Windows และ Linux และรัน Dev Containers: Rebuild Container

ขั้นตอนที่ 3: เข้าสู่ระบบ Claude Code

เปิด terminal ใน container ที่ rebuild แล้วและรัน claude แล้วทำตาม authentication prompt

คงความเป็นตัวตนและการตั้งค่าผ่านการ Rebuild

ตามค่าเริ่มต้น home directory ของ container จะถูกทิ้งเมื่อ rebuild ดังนั้นวิศวกรต้องเข้าสู่ระบบใหม่ทุกครั้ง Claude Code เก็บ authentication token, user settings และประวัติเซสชันไว้ภายใต้ ~/.claude Mount named volume ที่เส้นทางนั้นเพื่อเก็บ state นี้ผ่านการ rebuild

devcontainer.json
"mounts": [
"source=claude-code-config,target=/home/node/.claude,type=volume"
]

บังคับใช้นโยบายองค์กร

Dev container เป็นสถานที่ที่สะดวกในการใช้นโยบายองค์กร เพราะ image และการตั้งค่าเดียวกันทำงานบนเครื่องของวิศวกรทุกคน

Claude Code อ่าน /etc/claude-code/managed-settings.json บน Linux และใช้กับลำดับความสำคัญสูงสุดใน settings hierarchy คัดลอกไฟล์จาก Dockerfile ของคุณ:

Dockerfile
RUN mkdir -p /etc/claude-code
COPY managed-settings.json /etc/claude-code/managed-settings.json

เพื่อตั้งค่า environment variables ที่ใช้กับทุกเซสชัน Claude Code ในคอนเทนเนอร์ เพิ่มลงใน containerEnv ใน devcontainer.json ของคุณ:

devcontainer.json
"containerEnv": {
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"DISABLE_AUTOUPDATER": "1"
}

จำกัด Network Egress

คุณสามารถจำกัด outbound traffic ของ container ให้เฉพาะโดเมนที่ Claude Code ต้องการ ดู Network access requirements สำหรับโดเมน inference และ authentication

รันโดยไม่มี Permission Prompts

เนื่องจาก container รัน Claude Code ในฐานะ user ที่ไม่ใช่ root และจำกัดการดำเนินการคำสั่งไว้ในคอนเทนเนอร์ คุณสามารถส่ง --dangerously-skip-permissions สำหรับการทำงานที่ไม่มีการโต้ตอบ CLI ปฏิเสธ flag นี้เมื่อเปิดในฐานะ root ดังนั้นยืนยันว่า remoteUser ตั้งค่าเป็นบัญชีที่ไม่ใช่ root

ลองใช้ Reference Container

Repository anthropics/claude-code มี dev container ตัวอย่างที่รวม CLI, egress firewall, persistent volumes และ Zsh-based shell

ขั้นตอน

  1. ติดตั้ง VS Code และ Dev Containers extension
  2. Clone Claude Code repository และเปิดใน VS Code
  3. เมื่อได้รับ prompt คลิก Reopen in Container
  4. เมื่อ container สร้างเสร็จ เปิด terminal ด้วย Ctrl+` และรัน claude เพื่อเข้าสู่ระบบและเริ่มเซสชันแรก

ขั้นตอนต่อไป

  • Set up Claude Code for your organization: เลือกผู้ให้บริการ authentication ตัดสินใจว่านโยบายจะถึงอุปกรณ์อย่างไร
  • Server-managed settings: ส่งมอบ managed policy จาก Claude.ai admin console
  • Network access requirements: รายการโดเมน allowlist ทั้งหมด
  • Security model: การป้องกัน permission system, sandboxing และ prompt-injection ของ Claude Code