-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathdevcontainer.json
More file actions
115 lines (96 loc) · 5.53 KB
/
Copy pathdevcontainer.json
File metadata and controls
115 lines (96 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//
// Created by Kevin Funderburg on 09/11/2024
//
{
"name": "Barton Ubuntu Development Environment",
"initializeCommand": "docker/setupDockerEnv.sh",
"dockerComposeFile": [
"../docker/compose.yaml",
"../docker/compose.devcontainer.yaml",
"../docker/compose.debuginfod-cache.yaml"
],
"service": "barton",
// keep the local path of our tree the same within the container
"workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind",
"workspaceFolder": "${localWorkspaceFolder}",
// ensure special files from local home are available in the container
// NOTE: assumes /home/$USER as a homedir within the container
// NOTE: VSC will copy some files post-config; .ssh/known_hosts, .gitconfig, etc
"mounts": [
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind",
"source=${localEnv:HOME}/.ssh,target=/home/${localEnv:USER}/.ssh,type=bind"
],
// By setting this value to true, VSC will not run the entrypoint/CMD in the Dockerfile
// and instead will start the devcontainer and keep it running indefinitely. Without this,
// the container will start and stop immediately after the entrypoint/CMD is executed.
"overrideCommand": true,
// leave the container running when VS Code closes
"shutdownAction": "none",
// A set of name-value pairs that sets or overrides environment variables for VS Code
// (or sub-processes like terminals) but not the container as a whole
"remoteEnv":
{
"BUILDER_USER": "${localEnv:USER}",
"HOME": "/home/${localEnv:USER}",
"GIT_PS1_SHOWDIRTYSTATE": "1",
"GIT_PS1_SHOWSTASHSTATE": "1",
"GIT_PS1_SHOWCOLORHINTS": "true",
"PROMPT_COMMAND": "${localEnv:PROMPT_COMMAND}",
// see `docker/setupDockerEnv.sh` for more details on these custom PATHs
// NOTE: do not add a custom PATH here without first defining it in setupDockerEnv.sh
"LD_LIBRARY_PATH": "${containerEnv:LD_LIBRARY_PATH}:${containerEnv:LIB_BARTON_SHARED_PATH}",
"PYTHONPATH": "${containerEnv:PYTHONPATH}:${containerEnv:BARTON_PYTHONPATH}",
// ASAN-instrumented libBartonCore.so requires the link order check to be disabled
// when loaded via GObject introspection in Python. Without this, VS Code's pytest
// discovery crashes because ASAN kills the process. This is harmless for non-ASAN
// processes — they simply ignore the option.
"ASAN_OPTIONS": "verify_asan_link_order=0"
},
// specify the non-root user to use in the container
"remoteUser": "${localEnv:USER}",
"customizations":
{
"vscode":
{
"extensions": [
// Docker and Container Management
"ms-azuretools.vscode-docker", // Docker support for managing containers
// C/C++ Development
"ms-vscode.cmake-tools", // CMake support for build configuration
"ms-vscode.cpptools", // C/C++ language support with IntelliSense and debugging
"ms-vscode.cpptools-extension-pack", // Additional tools for C/C++ development
"llvm-vs-code-extensions.vscode-clangd", // Enhanced C/C++ language support using Clangd
"xaver.clang-format", // Manually triggered Clang-formatter for C/C++ code
// Python Development
"ms-python.python", // Comprehensive Python support with IntelliSense and debugging
"ms-python.vscode-pylance", // Fast, feature-rich language support for Python using Pylance
"ms-python.debugpy", // Python debugging support
"ms-python.vscode-pyright", // Type checking and IntelliSense for Python
"ms-python.black-formatter", // Python code formatter
"KevinRose.vsc-python-indent", // Correct Python indentation
// Markdown and Documentation
"yzhang.markdown-all-in-one", // All-in-one Markdown support with preview and shortcuts
// Git and Version Control
"eamodio.gitlens", // Git enhancements for better insights and navigation
"GitHub.vscode-github-actions", // GitHub Actions support
"GitHub.vscode-pull-request-github", // GitHub Pull Requests and Issues support]
// Code Formatting and Style
"aaron-bond.better-comments", // Enhanced comment formatting
"christian-kohler.path-intellisense", // Filename completion for better navigation
"esbenp.prettier-vscode", // Code formatter for various languages
"foxundermoon.shell-format", // Shell script formatting
// Build and Project Management
"npclaudiu.vscode-gn", // Ninja build system support
"doi.fileheadercomment", // File header comment generator
"atman-dev.openspec-for-copilot" // Openspec support
],
"settings":
{
"terminal.integrated.defaultProfile.linux": "bash",
"asciidoc.extensions.enableKroki": true
}
}
},
// script for further VSC customization after the container is created
"postCreateCommand": ".devcontainer/setup.sh"
}