@@ -277,11 +277,13 @@ COPY --link --from=tools-script /bin/* /bin/
277277# # Base images
278278# #
279279
280+ ARG APT_CACHE_SHARING=",sharing=locked"
281+
280282# A Go build environment.
281283FROM docker.io/library/golang:${GO_TAG} as go
282284RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
283- --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
284- --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
285+ --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
286+ --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
285287 DEBIAN_FRONTEND=noninteractive apt-get install -y file jo jq
286288COPY --link --from=tools-script /bin/* /usr/local/bin/
287289COPY --link --from=tools-go /bin/* /usr/local/bin/
@@ -294,8 +296,8 @@ ENV PROTOC_NO_VENDOR=1 \
294296# A Rust build environment.
295297FROM docker.io/library/rust:${RUST_TAG}-slim-bookworm as rust
296298RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
297- --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
298- --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
299+ --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
300+ --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
299301 DEBIAN_FRONTEND=noninteractive apt-get install -y \
300302 cmake \
301303 curl \
@@ -307,8 +309,8 @@ RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
307309 libssl-dev \
308310 pkg-config
309311RUN --mount=type=cache,from=apt-llvm,source=/etc/apt,target=/etc/apt,ro \
310- --mount=type=cache,from=apt-llvm,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
311- --mount=type=cache,from=apt-llvm,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
312+ --mount=type=cache,from=apt-llvm,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
313+ --mount=type=cache,from=apt-llvm,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
312314 DEBIAN_FRONTEND=noninteractive apt-get install -y clang-19 llvm-19
313315RUN rustup component add clippy rustfmt
314316COPY --link --from=tools-lint /bin/checksec /usr/local/bin/
@@ -332,8 +334,8 @@ RUN rustup target add \
332334 aarch64-unknown-linux-musl \
333335 x86_64-unknown-linux-musl
334336RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
335- --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
336- --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
337+ --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
338+ --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
337339 DEBIAN_FRONTEND=noninteractive apt-get install -y \
338340 binutils-aarch64-linux-gnu \
339341 g++-aarch64-linux-gnu \
@@ -346,8 +348,8 @@ RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
346348
347349FROM docker.io/library/debian:bookworm as devcontainer
348350RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
349- --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
350- --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
351+ --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
352+ --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
351353 DEBIAN_FRONTEND=noninteractive apt-get install -y \
352354 cmake \
353355 curl \
@@ -384,13 +386,13 @@ RUN groupadd --gid=1000 code \
384386
385387# git v2.34+ has new subcommands and supports code signing via SSH.
386388RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
387- --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
388- --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
389+ --mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
390+ --mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
389391 DEBIAN_FRONTEND=noninteractive apt-get install -y -t bookworm-backports git
390392
391393RUN --mount=type=cache,from=apt-llvm,source=/etc/apt,target=/etc/apt,ro \
392- --mount=type=cache,from=apt-llvm,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
393- --mount=type=cache,from=apt-llvm,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
394+ --mount=type=cache,from=apt-llvm,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
395+ --mount=type=cache,from=apt-llvm,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
394396 DEBIAN_FRONTEND=noninteractive apt-get install -y clang-19 llvm-19
395397ENV CC=clang-19 \
396398 CXX=clang++-19
@@ -408,16 +410,16 @@ RUN --mount=type=cache,id=apt-docker,from=apt-base,source=/etc/apt,target=/etc/a
408410#
409411# TODO(ver): replace this with a devcontainer feature?
410412RUN --mount=type=cache,id=apt-docker,from=apt-base,source=/etc/apt,target=/etc/apt \
411- --mount=type=cache,id=apt-docker,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
412- --mount=type=cache,id=apt-docker,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
413+ --mount=type=cache,id=apt-docker,from=apt-base,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
414+ --mount=type=cache,id=apt-docker,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
413415 --mount=type=bind,from=tools,source=/bin/scurl,target=/usr/local/bin/scurl \
414416 scurl https://raw.githubusercontent.com/microsoft/vscode-dev-containers/main/script-library/docker-debian.sh | bash -s
415417ENV DOCKER_BUILDKIT=1
416418
417419ARG MARKDOWNLINT_VERSION=0.15.0
418420RUN --mount=type=cache,from=apt-node,source=/etc/apt,target=/etc/apt,ro \
419- --mount=type=cache,from=apt-node,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
420- --mount=type=cache,from=apt-node,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
421+ --mount=type=cache,from=apt-node,source=/var/cache/apt,target=/var/cache/apt${APT_CACHE_SHARING} \
422+ --mount=type=cache,from=apt-node,source=/var/lib/apt/lists,target=/var/lib/apt/lists${APT_CACHE_SHARING} \
421423 DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs
422424RUN npm install "markdownlint-cli2@${MARKDOWNLINT_VERSION}" --global
423425
0 commit comments