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
|
{
"name": "SSCG Development (Fedora 43) - Podman",
"build": {
"dockerfile": "Dockerfile",
"context": "."
},
"workspaceFolder": "/workspace",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
// Configure tool-specific properties
"customizations": {
"vscode": {
"extensions": [
// C/C++ development
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"ms-vscode.cmake-tools",
// Code formatting and linting
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
// Git integration
"eamodio.gitlens",
// General development
"ms-vscode.hexeditor",
"redhat.vscode-yaml",
"ms-python.python",
// Meson build system
"asabil.meson",
// Documentation
"yzhang.markdown-all-in-one"
],
"settings": {
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"C_Cpp.default.compilerPath": "/usr/bin/gcc",
"C_Cpp.default.cStandard": "gnu17",
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"C_Cpp.default.includePath": [
"${workspaceFolder}/include",
"/usr/include",
"/usr/include/openssl",
"/usr/include/talloc",
"/usr/include/popt"
],
"C_Cpp.default.defines": [
"G_LOG_USE_STRUCTURED"
],
"clang-format.executable": "/usr/bin/clang-format",
"editor.formatOnSave": true,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"terminal.integrated.defaultProfile.linux": "bash"
}
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created
"postCreateCommand": "echo 'SSCG Development Environment Ready!' && echo 'Run: meson setup build && ninja -C build' to build the project",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root
"remoteUser": "developer",
// Set container environment variables
"containerEnv": {
"LANG": "C.UTF-8",
"LC_ALL": "C.UTF-8"
},
// Configure container features
"features": {
"ghcr.io/devcontainers/features/git:1": {
"ppa": true,
"version": "latest"
}
},
// Mount the local git config and ssh keys for convenience
// Note: Podman handles bind mounts differently than Docker
"mounts": [
"source=${localEnv:HOME}/.gitconfig,target=/home/developer/.gitconfig,type=bind",
"source=${localEnv:HOME}/.ssh,target=/home/developer/.ssh,type=bind"
],
// Podman-specific configuration
"runArgs": [
"--userns=keep-id",
"--security-opt", "label=disable"
]
}
|