// For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/rust { "name": "Rust", // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile "image": "mcr.microsoft.com/devcontainers/rust:1-1-bookworm", // Features to add to the dev container. More info: https://containers.dev/features. "features": { "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { // "packages": "git-flow, openocd, gdb-multiarch" "packages": "git-flow,libudev-dev" } }, // 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": "rustc --version", "postCreateCommand": { "fl": "cargo install flip-link", "prs": "cargo install probe-rs --features cli", "cg": "cargo install cargo-generate", "target": "rustup target install thumbv7m-none-eabi" }, // Configure tool-specific properties. "customizations": { "vscode": { "settings": { "terminal.integrated.defaultProfile.linux": "zsh" }, "extensions": [ // "marus25.cortex-debug", "probe-rs.probe-rs-debugger", "mhutchie.git-graph" ] } }, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. // "remoteUser": "root" "mounts": [ { // make the cargo cache persistent in a volume "source": "devcontainer-cargo-cache-${devcontainerId}", "target": "/usr/local/cargo", "type": "volume" }, { // bind the USB bus "source": "/dev/bus/usb", "target": "/dev/bus/usb", "type": "bind" } ], "runArgs": [ // allow access to "character devices" "--device-cgroup-rule=c 189:* rmw" ] }