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

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

What

Mount the pre-commit cargo target cache at /cargo-target (outside the /build bind mount) and point cargo at it with CARGO_TARGET_DIR=/cargo-target, instead of nesting the named volume at /build/target. The volume name is unchanged, so the cache still persists.

Why (DEV-371)

Nesting the named dev-explorer-bookmarks-cargo-target volume at /build/target, under the /build host bind mount, makes the Docker daemon create a root-owned target/ directory on the host that needs sudo to remove. Moving the mount path off the bind mount stops the root-owned dir from appearing.

Note

Follows the governance Option A standard: cargo target volume mounted outside the bind mount with CARGO_TARGET_DIR set.

## What Mount the pre-commit cargo target cache at `/cargo-target` (outside the `/build` bind mount) and point cargo at it with `CARGO_TARGET_DIR=/cargo-target`, instead of nesting the named volume at `/build/target`. The volume name is unchanged, so the cache still persists. ## Why (DEV-371) Nesting the named `dev-explorer-bookmarks-cargo-target` volume at `/build/target`, under the `/build` host bind mount, makes the Docker daemon create a root-owned `target/` directory on the host that needs `sudo` to remove. Moving the mount path off the bind mount stops the root-owned dir from appearing. ## Note Follows the governance Option A standard: cargo target volume mounted outside the bind mount with `CARGO_TARGET_DIR` set.
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 10s
Create release / Create release from merged PR (pull_request) Has been skipped
d24f5e2167
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 67bd387cb2 into main 2026-06-19 09:49:54 +02:00
David deleted branch fix/dev-371-precommit-host-owned-target 2026-06-19 09:49:54 +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/explorer-bookmarks!37
No description provided.