11// For format details, see https://aka.ms/vscode-remote/devcontainer.json or the definition README at
2- // https://github.com/microsoft/vscode-dev-containers/tree/master/containers/ubuntu-18.04-git
2+ // https://github.com/devcontainers/images/blob/main/README.md
33{
4- "name" : " Ubuntu 20 .04 & Git" ,
4+ "name" : " Ubuntu 24 .04 & Git" ,
55 "dockerFile" : " Dockerfile" ,
66 "build" : {
77 "args" : {
1111 "onCreateCommand" : " ./install-rust.sh" ,
1212 // The optional 'runArgs' property can be used to specify additional runtime arguments.
1313 "runArgs" : [
14- // Uncomment the line if you will use a ptrace-based debugger like C++, Go, and Rust.
15- " --cap-add=SYS_PTRACE" , " --security-opt" , " seccomp=unconfined" ,
14+ // Uncomment these lines if you will use a ptrace-based debugger like C++, Go, and Rust.
15+ // Note that these options have security implications and should be used with caution.
16+ // We have them disabled currently because we don't want to allow copilot LLMs to use ptrace
17+ // to escape the container sandbox.
18+ // "--cap-add=SYS_PTRACE",
19+ // "--security-opt",
20+ // "seccomp=unconfined",
1621
1722 // Uncomment the next line to use a non-root user. On Linux, this will prevent
1823 // new files getting created as root, but you may need to update the USER_UID
1924 // and USER_GID in .devcontainer/Dockerfile to match your user if not 1000.
20- " -u" , " vscode"
25+ " -u" ,
26+ " vscode"
2127 ],
2228
23- // Use 'settings' to set *default* container specific settings.json values on container create.
24- // You can edit these settings after create using File > Preferences > Settings > Remote.
25- "settings" : {
26- "terminal.integrated.shell.linux" : " /bin/bash"
27- },
28-
29- // Use 'features.docker-from-docker' to setup docker inside the container
30- // for building the Docker images inside GitHub Codespaces.
31- "features" : {
32- "docker-from-docker" : {
33- "version" : " latest" ,
34- "moby" : true
35- }
36- },
29+ // We previously had `features.docker-from-docker` enabled here to allow
30+ // running docker commands inside the container. However we now disable that
31+ // as we are are using the devcontainers as a moderate-strength security
32+ // boundary to sandbox the copilot LLMs. We don't want them running host
33+ // docker commands -- that would violate the whole point of the sandbox.
3734
3835 // Uncomment the next line if you want to publish any ports.
3936 // "appPort": [],
40-
4137 // Uncomment the next line to run commands after the container is created.
4238 // "postCreateCommand": "uname -a",
43-
44- // Add the IDs of extensions you want installed when the container is created in the array below.
45- "extensions" : []
46- }
39+ "customizations" : {
40+ "vscode" : {
41+ "settings" : {
42+ "terminal.integrated.defaultProfile.linux" : " bash" ,
43+ "clangd.path" : " /usr/bin/clangd-20"
44+ },
45+ "extensions" : [
46+ " llvm-vs-code-extensions.vscode-clangd" ,
47+ " llvm-vs-code-extensions.lldb-dap" ,
48+ " matepek.vscode-catch2-test-adapter" ,
49+ " rust-lang.rust-analyzer" ,
50+ " graydon.lsp-lm-tool"
51+ ]
52+ }
53+ }
54+ }
0 commit comments