mirror of
https://github.com/trailofbits/claude-code-devcontainer
synced 2026-06-21 14:11:48 +00:00
1585b511ed
- Switch to multi-stage Docker build (Node 23 → Ubuntu 25.04) - Add modern CLI tools: ripgrep, fd, fzf, tmux, git-delta - Add Python 3.13 with uv package manager - Add post_install.py for auto-configuration (bypassPermissions, tmux) - Add install.sh CLI helper (devc command) for terminal workflow - Add persistent volumes for GitHub CLI auth and command history - Add openssh-client for git SSH operations - Remove bloat: man-db, zoxide, aggregate, python3-pip - Mount host .gitconfig read-only for git identity Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
59 lines
1.8 KiB
JSON
59 lines
1.8 KiB
JSON
{
|
|
"name": "Claude Code Sandbox",
|
|
"build": {
|
|
"dockerfile": "Dockerfile",
|
|
"args": {
|
|
"TZ": "${localEnv:TZ:America/New_York}",
|
|
"CLAUDE_CODE_VERSION": "latest",
|
|
"GIT_DELTA_VERSION": "0.18.2",
|
|
"ZSH_IN_DOCKER_VERSION": "1.2.1"
|
|
}
|
|
},
|
|
"runArgs": [
|
|
"--cap-add=NET_ADMIN",
|
|
"--cap-add=NET_RAW"
|
|
],
|
|
"customizations": {
|
|
"vscode": {
|
|
"extensions": [
|
|
"anthropic.claude-code",
|
|
"dbaeumer.vscode-eslint",
|
|
"esbenp.prettier-vscode",
|
|
"eamodio.gitlens"
|
|
],
|
|
"settings": {
|
|
"editor.formatOnSave": true,
|
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
"editor.codeActionsOnSave": {
|
|
"source.fixAll.eslint": "explicit"
|
|
},
|
|
"terminal.integrated.defaultProfile.linux": "zsh",
|
|
"terminal.integrated.profiles.linux": {
|
|
"bash": {
|
|
"path": "bash",
|
|
"icon": "terminal-bash"
|
|
},
|
|
"zsh": {
|
|
"path": "zsh"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"remoteUser": "ubuntu",
|
|
"mounts": [
|
|
"source=claude-code-bashhistory-${devcontainerId},target=/commandhistory,type=volume",
|
|
"source=claude-code-config-${devcontainerId},target=/home/ubuntu/.claude,type=volume",
|
|
"source=claude-code-gh-${devcontainerId},target=/home/ubuntu/.config/gh,type=volume",
|
|
"source=${localEnv:HOME}/.gitconfig,target=/home/ubuntu/.gitconfig,type=bind,readonly"
|
|
],
|
|
"containerEnv": {
|
|
"NODE_OPTIONS": "--max-old-space-size=4096",
|
|
"CLAUDE_CONFIG_DIR": "/home/ubuntu/.claude",
|
|
"POWERLEVEL9K_DISABLE_GITSTATUS": "true"
|
|
},
|
|
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
|
|
"workspaceFolder": "/workspace",
|
|
"postCreateCommand": "python3 /opt/post_install.py"
|
|
}
|