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
|
{
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
"name": "wiRedPanda Development Environment",
// Use this image if it exists, otherwise build it
"image": "wiredpanda-dev:latest",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
// Configure tool-specific properties
"customizations": {
"vscode": {
// Set *default* container specific settings.json values on container create
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
"cmake.configureOnOpen": true,
"cmake.buildDirectory": "${workspaceFolder}/build",
"cmake.generator": "Ninja",
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"C_Cpp.default.compilerPath": "/usr/bin/g++",
"C_Cpp.default.cStandard": "c17",
"C_Cpp.default.cppStandard": "c++20"
},
// Add the IDs of extensions you want installed when the container is created
"extensions": [
"Anthropic.claude-code",
"astro-build.astro-vscode",
"bierner.markdown-mermaid",
"eamodio.gitlens",
"github.vscode-github-actions",
"ms-python.python-extension-pack",
"ms-vscode.cmake-tools",
"ms-vscode.cpptools-extension-pack"
]
}
},
// Configure container user
"remoteUser": "developer",
// Enable debugging capabilities
"runArgs": [
"--volume=/etc/timezone:/etc/timezone:ro",
"--volume=/etc/localtime:/etc/localtime:ro",
"--cap-add=SYS_PTRACE",
"--security-opt=seccomp:unconfined"
],
// Container environment variables
"containerEnv": {
"QT_QPA_PLATFORM": "offscreen",
"QTDIR": "/usr/lib/qt5",
"QT_PLUGIN_PATH": "/usr/lib/x86_64-linux-gnu/qt5/plugins"
},
// Features to add to the dev container
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
"configureZshAsDefaultShell": true,
"installOhMyZsh": true,
"upgradePackages": true,
"username": "developer",
"userUid": "1000",
"userGid": "1000"
}
},
// Lifecycle scripts
"initializeCommand": "echo 'Initializing wiRedPanda development container...'",
"onCreateCommand": "echo 'Container created successfully'",
"updateContentCommand": "echo 'Content updated'",
// Set the default path that VS Code should open when connecting to the container
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
"workspaceFolder": "/workspace"
}
|