File: devcontainer.json

package info (click to toggle)
sscg 4.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 592 kB
  • sloc: ansic: 5,956; sh: 712; makefile: 11
file content (98 lines) | stat: -rw-r--r-- 3,409 bytes parent folder | download
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"
    ]
}