{ "name": "Coder Development Environment", "build": { "dockerfile": "Dockerfile", "context": ".." }, "features": { // Core development tools "ghcr.io/devcontainers/features/common-utils:2": { "installZsh": true, "configureZshAsDefaultShell": true, "installOhMyZsh": true, "upgradePackages": true, "username": "coder", "userUid": "1000", "userGid": "1000" }, // Git and GitHub CLI "ghcr.io/devcontainers/features/git:1": { "version": "latest", "ppa": true }, "ghcr.io/devcontainers/features/github-cli:1": { "version": "latest" }, // Docker-in-Docker "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest", "enableNonRootDocker": true, "moby": true }, // Node.js and npm "ghcr.io/devcontainers/features/node:1": { "version": "lts", "nodeGypDependencies": true }, // Python "ghcr.io/devcontainers/features/python:1": { "version": "3.12", "installTools": true, "installJupyterlab": true }, // Go "ghcr.io/devcontainers/features/go:1": { "version": "latest" }, // Rust "ghcr.io/devcontainers/features/rust:1": { "version": "stable", "profile": "default" }, // Terraform "ghcr.io/devcontainers/features/terraform:1": { "version": "latest" }, // Additional tools "ghcr.io/devcontainers/features/aws-cli:1": {}, "ghcr.io/devcontainers/features/azure-cli:1": {} }, "customizations": { "vscode": { "settings": { "terminal.integrated.defaultProfile.linux": "zsh", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": true }, "python.linting.enabled": true, "python.formatting.provider": "black" }, "extensions": [ "ms-python.python", "ms-python.vscode-pylance", "esbenp.prettier-vscode", "dbaeumer.vscode-eslint", "golang.go", "rust-lang.rust-analyzer", "hashicorp.terraform", "ms-azuretools.vscode-docker", "github.copilot", "github.copilot-chat" ] } }, "postCreateCommand": "bash .devcontainer/post-create.sh", "postStartCommand": "bash .devcontainer/post-start.sh", "remoteUser": "coder", "workspaceFolder": "/workspaces", "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces,type=bind", "mounts": [ "source=${localWorkspaceFolder},target=/home/coder/code-tools,type=bind" ], "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined", "--network=host" ], "containerEnv": { "SHELL": "/bin/zsh" } }