{ "name": "LTTng Traced ROS2 Scheduling Experiments", "build": { // Sets the run context to one level up instead of the .devcontainer folder. "context": "..", // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename. "dockerfile": "../Dockerfile" }, "runArgs": [ "--privileged", // for real-time access "--cap-add=sys_nice", "--cap-add=SYS_ADMIN", "--cap-add=SYS_PTRACE", "--ulimit", "rtprio=99", // for real-time access // explicitly mount /sys and /dev to allow access to the host's devices // and system information "--mount", "type=bind,source=/sys,target=/sys", "--mount", "type=bind,source=/dev,target=/dev", // mount /lib/modules and /usr/lib/modules to allow access to the host's kernel modules "--mount", "type=bind,source=/lib/modules,target=/lib/modules", "--mount", "type=bind,source=/usr/lib/modules,target=/usr/lib/modules" ], // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Uncomment the next line to run commands after the container is created. "postCreateCommand": "bash postCreate.sh", // Uncomment the next line to run commands after the container is created and started. "postStartCommand": "sudo modprobe lttng-tracer && sudo modprobe lttng-ring-buffer-client-discard && sudo modprobe lttng-probe-sched && sudo modprobe lttng-probe-irq && sudo modprobe lttng-probe-timer && (sudo lttng-sessiond --daemonize || true)", // Configure tool-specific properties. "customizations": { "vscode": { "settings": { "terminal.integrated.shell.linux": "/bin/bash", "terminal.integrated.defaultProfile.linux": "bash", "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools" }, "extensions": [ "ms-vscode.cpptools", "ms-vscode.cpptools-extension-pack", "ms-vscode.cmake-tools", "ms-azuretools.vscode-docker", "ms-vscode.cpptools-themes", "ms-iot.vscode-ros", "GitHub.github-vscode-theme", "ms-toolsai.jupyter", "ms-toolsai.jupyter-keymap", "ms-toolsai.vscode-jupyter-slideshow", "ms-toolsai.vscode-jupyter-cell-tags", "ms-toolsai.jupyter-renderers", "ms-python.debugpy", "ms-python.python", "ms-python.vscode-python-envs" ] } }, "features": { // optional but convenient "ghcr.io/devcontainers/features/common-utils:2": {} }, "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/${localWorkspaceFolderBasename},type=bind,consistency=cached", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "containerEnv": { "TRACETOOLS_TRACEPOINTS_ENABLED": "1" }, // Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root. "remoteUser": "dev" }