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

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

What

Change the pre-commit recipe in justfile so the cargo target cache is mounted at /cargo-target (outside the /build bind mount) and cargo is pointed at it via --env CARGO_TARGET_DIR=/cargo-target, instead of nesting the dev-monkey-cargo-target named volume at /build/target. The volume name is unchanged; only its mount path moves.

Why (DEV-371)

Nesting the named volume at /build/target (inside the $PWD:/build bind mount) makes the Docker daemon materialize a root-owned ./target directory on the host, which then needs sudo to remove. Moving the mount off the bind mount eliminates the stray root-owned directory while keeping the build cache persistent in the named volume.

This follows the governance Option A standard: mount the cache outside the bind mount and set CARGO_TARGET_DIR.

## What Change the `pre-commit` recipe in `justfile` so the cargo target cache is mounted at `/cargo-target` (outside the `/build` bind mount) and cargo is pointed at it via `--env CARGO_TARGET_DIR=/cargo-target`, instead of nesting the `dev-monkey-cargo-target` named volume at `/build/target`. The volume name is unchanged; only its mount path moves. ## Why (DEV-371) Nesting the named volume at `/build/target` (inside the `$PWD:/build` bind mount) makes the Docker daemon materialize a root-owned `./target` directory on the host, which then needs `sudo` to remove. Moving the mount off the bind mount eliminates the stray root-owned directory while keeping the build cache persistent in the named volume. This follows the governance Option A standard: mount the cache outside the bind mount and set `CARGO_TARGET_DIR`.
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 38s
Create release / Create release from merged PR (pull_request) Has been skipped
e208ee3e59
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 efd8399017 into main 2026-06-19 09:58:55 +02:00
David deleted branch fix/dev-371-precommit-host-owned-target 2026-06-19 09:58:55 +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/monkey!49
No description provided.