{ "name": "C++ Development Container", "dockerFile": "Dockerfile", // Configure tool-specific properties "customizations": { "vscode": { // Essential C++ development extensions "extensions": [ "ms-vscode.cpptools-extension-pack", "ms-vscode.cpptools", "ms-vscode.cpptools-themes", "ms-vscode.cmake-tools", "xaver.clang-format", "usernamehw.errorlens", "llvm-vs-code-extensions.vscode-clangd", "ms-vscode.hexeditor", "ms-vscode-remote.remote-containers" ], // Container-specific VS Code settings "settings": { "C_Cpp.default.compilerPath": "/usr/bin/clang++-12", "C_Cpp.default.cStandard": "c17", "C_Cpp.default.cppStandard": "c++20", "C_Cpp.default.intelliSenseMode": "linux-clang-x64", "cmake.configureOnOpen": false, "clang-format.executable": "/usr/bin/clang-format-12", "editor.formatOnSave": true, "[cpp]": { "editor.defaultFormatter": "xaver.clang-format" }, "[c]": { "editor.defaultFormatter": "xaver.clang-format" }, "files.associations": { "*.hpp": "cpp", "*.tpp": "cpp" } } } }, // Container configuration // "workspaceFolder": "/workspace", "remoteUser": "vscode", // Port forwarding for web server testing "forwardPorts": [8080, 3000], "portsAttributes": { "8080": { "label": "WebServ Server", "onAutoForward": "notify" }, "3000": { "label": "Development Server", "onAutoForward": "silent" } }, // Additional dev container features (SSH agent removed) "features": { "ghcr.io/devcontainers/features/git:1": {}, "ghcr.io/devcontainers/features/github-cli:1": {} }, // Simple post-create setup "postCreateCommand": "echo 'Dev container ready! Use GitHub CLI (gh auth login) or configure Git with HTTPS for GitHub access.'" }