headroom/.devcontainer/memory-stack
chopratejas 9ce61afcd4 fix(ci): use ghcr devcontainer rust feature instead of manual rustup install
PR #360's first run after the rustup-component fix exposed a deeper
issue: the devcontainer's manual rustup install in .devcontainer/Dockerfile
runs as root and leaves /usr/local/cargo root-owned. When post-create.sh
later runs `uv sync` as the `vscode` user, maturin → cargo can't write
to the registry cache:

    warning: failed to write cache, path:
      /usr/local/cargo/registry/index/.../aho-corasick,
    error: Permission denied (os error 13)

The official ghcr.io/devcontainers/features/rust:1 feature solves this
by chowning the toolchain dirs to the runtime user (and adding them to
a `rustlang` group). It also handles component installation cleanly so
we don't need the manual `-c rustfmt -c clippy` workaround in the
container build.

Changes:
- .devcontainer/devcontainer.json: add rust feature with version=1.95.0,
  profile=minimal, components=rustfmt,clippy
- .devcontainer/memory-stack/devcontainer.json: same
- .devcontainer/Dockerfile: drop manual rustup install (feature replaces
  it). Keep the apt-get pkg-config + libssl-dev for openssl-sys, and
  the maturin pip install.

Note: e2e/{init,wrap}/Dockerfile keep their manual rustup install
because they're stand-alone runtime images, not devcontainers.
2026-05-03 13:42:43 -07:00
..
devcontainer.json fix(ci): use ghcr devcontainer rust feature instead of manual rustup install 2026-05-03 13:42:43 -07:00