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

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

What

In the pre-commit: recipe's mounts list, mount the cargo target named volume at /cargo-target (outside the /build bind mount) and point cargo at it via --env CARGO_TARGET_DIR=/cargo-target, instead of nesting it at /build/target.

Why (DEV-371)

Nesting the cargo-target 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 and breaks clean-clone workflows. Moving the cache outside the bind mount and redirecting cargo with CARGO_TARGET_DIR keeps the persistent named-volume cache while leaving the host working tree untouched.

This is the governance Option A standard. The registry and git volumes are unchanged.

## What In the `pre-commit:` recipe's `mounts` list, mount the cargo target named volume at `/cargo-target` (outside the `/build` bind mount) and point cargo at it via `--env CARGO_TARGET_DIR=/cargo-target`, instead of nesting it at `/build/target`. ## Why (DEV-371) Nesting the cargo-target 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 and breaks clean-clone workflows. Moving the cache outside the bind mount and redirecting cargo with `CARGO_TARGET_DIR` keeps the persistent named-volume cache while leaving the host working tree untouched. This is the governance Option A standard. The registry and git volumes are unchanged.
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 22s
Create release / Create release from merged PR (pull_request) Has been skipped
e57a07c168
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. Aligns with the governance Option A standard.

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

#DEV-371
David merged commit d9b03fae07 into main 2026-06-19 09:59:43 +02:00
David deleted branch fix/dev-371-precommit-host-owned-target 2026-06-19 09:59:43 +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/youtrack-cli!72
No description provided.