fix(hooks): mount cargo target outside bind mount via CARGO_TARGET_DIR #25

Merged
David merged 1 commit from fix/dev-371-precommit-host-owned-target into main 2026-06-19 09:58:52 +02:00
Owner

What

Mount the cargo target cache at /cargo-target (outside the /build bind mount) and point cargo at it with CARGO_TARGET_DIR, instead of nesting the dev-umbra-cargo-target named volume at /build/target. Applied to all four cargo steps in the pre-commit recipe. The volume name and the registry volume are unchanged.

Why (DEV-371)

Nesting a named volume under the /build bind mount makes the Docker daemon create a root-owned target/ directory on the host, which then needs sudo to remove. Moving the mount path off the bind mount keeps the host working tree clean while the cache still persists in the named volume.

Governance Option A

Implements the governance Option A standard: relocate the cargo target volume outside the bind mount and set CARGO_TARGET_DIR so cargo writes into the volume at its new path.

## What Mount the cargo target cache at `/cargo-target` (outside the `/build` bind mount) and point cargo at it with `CARGO_TARGET_DIR`, instead of nesting the `dev-umbra-cargo-target` named volume at `/build/target`. Applied to all four cargo steps in the `pre-commit` recipe. The volume name and the registry volume are unchanged. ## Why (DEV-371) Nesting a named volume under the `/build` bind mount makes the Docker daemon create a root-owned `target/` directory on the host, which then needs `sudo` to remove. Moving the mount path off the bind mount keeps the host working tree clean while the cache still persists in the named volume. ## Governance Option A Implements the governance Option A standard: relocate the cargo target volume outside the bind mount and set `CARGO_TARGET_DIR` so cargo writes into the volume at its new path.
fix(hooks): mount cargo target outside bind mount via CARGO_TARGET_DIR
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 5m28s
Create release / Create release from merged PR (pull_request) Has been skipped
cdcc2c0feb
Mount the cargo target cache at /cargo-target (outside the /build bind mount) and point cargo at it with CARGO_TARGET_DIR, instead of nesting the named volume at /build/target, which makes the Docker daemon create a root-owned target/ on the host that needs sudo to remove. The cache still persists in the named volume; only its mount path moves off the bind mount. Aligns with the governance Option A standard.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

#DEV-371
David merged commit 8987c3e8b1 into main 2026-06-19 09:58:52 +02:00
David deleted branch fix/dev-371-precommit-host-owned-target 2026-06-19 09:58:52 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
pandoras-box/umbra!25
No description provided.