fix(docker): eliminate race conditions in shared buildkit cache mounts (#44984)

weizhoublue committed Jun 27, 2026 at 10:43 UTC 2e058851d39448bf282e64a6aac04466968622e7
3 files changed +8 -6
docker/Dockerfile
+3 -2
@@ -311,9 +311,10 @@ ENV CARGO_BUILD_JOBS=4
311 # Build the release artifacts. Cache cargo registry/git, but not target/,
312 # because stale target metadata can outlive source updates across BuildKit
313 # cache reuse.
314 -RUN --mount=type=cache,target=/root/.cargo/registry \
315 - --mount=type=cache,target=/root/.cargo/git \
314 +RUN --mount=type=cache,target=/root/.cargo/registry,sharing=locked \
315 + --mount=type=cache,target=/root/.cargo/git,sharing=locked \
316 bash build_rust.sh
317 +
318 #################### RUST BUILD IMAGE ####################
319
320 #################### CSRC BUILD IMAGE ####################
docker/Dockerfile.nightly_torch
+3 -2
@@ -123,9 +123,10 @@ COPY build_rust.sh build_rust.sh
123 # (rustc spawns enough concurrent processes to hit RLIMIT_NOFILE otherwise).
124 ENV CARGO_BUILD_JOBS=4
125
126 -RUN --mount=type=cache,target=/root/.cargo/registry \
127 - --mount=type=cache,target=/root/.cargo/git \
126 +RUN --mount=type=cache,target=/root/.cargo/registry,sharing=locked \
127 + --mount=type=cache,target=/root/.cargo/git,sharing=locked \
128 bash build_rust.sh
129 +
130 #################### RUST BUILD IMAGE ####################
131
132 #################### WHEEL BUILD IMAGE ####################
docker/Dockerfile.xpu
+2 -2
@@ -28,8 +28,8 @@ COPY build_rust.sh build_rust.sh
28 # (rustc spawns enough concurrent processes to hit RLIMIT_NOFILE otherwise).
29 ENV CARGO_BUILD_JOBS=4
30
31 -RUN --mount=type=cache,target=/root/.cargo/registry \
32 - --mount=type=cache,target=/root/.cargo/git \
31 +RUN --mount=type=cache,target=/root/.cargo/registry,sharing=locked \
32 + --mount=type=cache,target=/root/.cargo/git,sharing=locked \
33 bash build_rust.sh
34
35 FROM ubuntu:24.04 AS vllm-base