docker: Increase caching; explicit serialization to force convergence.

docker: Adjust profile overrides

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-06-02 06:20:37 +00:00
parent 1a6cfe72b9
commit d290bcbca9
12 changed files with 45 additions and 17 deletions

View File

@@ -27,7 +27,7 @@ RUN \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst}/${cargo_tgt_sub},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/deps,id=${cargo_tgt_cache}/deps,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/build,id=${cargo_tgt_cache}/build,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/incremental,id=${cargo_tgt_cache}/incremental,sharing=locked \

View File

@@ -24,7 +24,7 @@ RUN \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst}/${cargo_tgt_sub},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/debian,id=${cargo_tgt_dst}/debian,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/deps,id=${cargo_tgt_cache}/deps,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/build,id=${cargo_tgt_cache}/build,sharing=locked \

View File

@@ -12,10 +12,13 @@ ARG cargo_tgt_sub
ARG cargo_tgt_cache
ARG CARGO_BUILD_RUSTFLAGS
ARG CARGO_PROFILE_TEST_DEBUG
ARG CARGO_PROFILE_TEST_BUILD_OVERRIDE_DEBUG
ARG CARGO_PROFILE_TEST_INCREMENTAL
ARG CARGO_PROFILE_BENCH_DEBUG
ARG CARGO_PROFILE_BENCH_BUILD_OVERRIDE_DEBUG
ARG CARGO_PROFILE_BENCH_LTO
ARG CARGO_PROFILE_BENCH_CODEGEN_UNITS
ARG CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG
ARG CARGO_PROFILE_RELEASE_LTO
ARG cargo_profile
ARG cargo_features
ARG cargo_spec_features
@@ -34,15 +37,18 @@ COPY --link --from=recipe recipe.json .
ENV CARGO_TARGET_DIR="${CARGO_TARGET_DIR}"
ENV CARGO_BUILD_RUSTFLAGS="${CARGO_BUILD_RUSTFLAGS}"
ENV CARGO_PROFILE_TEST_DEBUG="${CARGO_PROFILE_TEST_DEBUG}"
ENV CARGO_PROFILE_TEST_BUILD_OVERRIDE_DEBUG="${CARGO_PROFILE_TEST_BUILD_OVERRIDE_DEBUG}"
ENV CARGO_PROFILE_TEST_INCREMENTAL="${CARGO_PROFILE_TEST_INCREMENTAL}"
ENV CARGO_PROFILE_BENCH_DEBUG="${CARGO_PROFILE_BENCH_DEBUG}"
ENV CARGO_PROFILE_BENCH_BUILD_OVERRIDE_DEBUG="${CARGO_PROFILE_BENCH_BUILD_OVERRIDE_DEBUG}"
ENV CARGO_PROFILE_BENCH_LTO="${CARGO_PROFILE_BENCH_LTO}"
ENV CARGO_PROFILE_BENCH_CODEGEN_UNITS="${CARGO_PROFILE_BENCH_CODEGEN_UNITS}"
ENV CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG="${CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG}"
ENV CARGO_PROFILE_RELEASE_LTO="${CARGO_PROFILE_RELEASE_LTO}"
RUN \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst}/${cargo_tgt_sub},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/deps,id=${cargo_tgt_cache}/deps,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/build,id=${cargo_tgt_cache}/build,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/incremental,id=${cargo_tgt_cache}/incremental,sharing=locked \

View File

@@ -29,7 +29,7 @@ RUN \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst}/${cargo_tgt_sub},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/deps,id=${cargo_tgt_cache}/deps,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/build,id=${cargo_tgt_cache}/build,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/incremental,id=${cargo_tgt_cache}/incremental,sharing=locked \

View File

@@ -24,7 +24,7 @@ RUN \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=shared,ro \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst}/${cargo_tgt_sub},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR},id=${cargo_tgt_dst},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/deps,id=${cargo_tgt_cache}/deps,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/build,id=${cargo_tgt_cache}/build,sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/incremental,id=${cargo_tgt_cache}/incremental,sharing=locked \

View File

@@ -8,6 +8,7 @@ WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
<<EOF
@@ -156,6 +157,7 @@ ARG complement_run=".*"
WORKDIR /
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
--mount=type=cache,dst=/go/pkg/mod/cache,sharing=locked \

View File

@@ -13,7 +13,9 @@ COPY --link --from=input . .
ENV CARGO_TARGET="${rust_target}"
WORKDIR /opt
RUN <<EOF
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
<<EOF
set -eux
url="https://static.rust-lang.org/rustup/archive/${rustup_version}/${rust_target}/rustup-init"
@@ -24,6 +26,7 @@ EOF
ENV RUSTUP_HOME="${RUSTUP_HOME}"
ENV CARGO_HOME="${CARGO_HOME}"
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=locked \
@@ -56,6 +59,7 @@ WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=locked \
@@ -66,10 +70,16 @@ RUN \
--target ${rust_target} \
${rustup_components} \
;
EOF
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=locked \
<<EOF
rustup run --install ${rust_toolchain} \
cargo install \
--quiet \
--locked \
--target ${rust_target} \
${cargo_installs} \

View File

@@ -16,6 +16,7 @@ COPY --link --from=input . .
ENV packages="ca-certificates ${packages}"
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
<<EOF
@@ -38,6 +39,7 @@ WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
<<EOF
@@ -54,6 +56,7 @@ WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
<<EOF

View File

@@ -9,7 +9,7 @@ COPY --link --from=input . .
ADD --link --keep-git-dir . /usr/src/tuwunel
WORKDIR /usr/src/tuwunel
RUN \
--mount=type=cache,dst=/var/lock/uwu/source,sharing=locked \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
<<EOF
set -eux
git reset \
@@ -43,6 +43,7 @@ ENV JEMALLOC_OVERRIDE="${JEMALLOC_OVERRIDE}"
#ENV ZSTD_SYS_USE_PKG_CONFIG="${ZSTD_SYS_USE_PKG_CONFIG}"
ENV ROCKSDB_LIB_DIR="${ROCKSDB_LIB_DIR}"
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=locked \
@@ -68,11 +69,10 @@ ARG RUSTUP_HOME
ARG CARGO_HOME
ARG CARGO_TARGET
WORKDIR /
COPY --link --from=input . .
WORKDIR /usr/src/tuwunel
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=locked \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=locked \

View File

@@ -25,6 +25,7 @@ ${packages} \
"
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
<<EOF

View File

@@ -8,7 +8,10 @@ COPY --link --from=input . .
WORKDIR /usr/src
COPY --link --from=recipe rocksdb.url .
RUN <<EOF
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=/var/lock/uwu/rocksdb,sharing=locked \
<<EOF
set -eux
submodule="librocksdb-sys/rocksdb"
url="$(cat rocksdb.url)"
@@ -45,6 +48,7 @@ ENV CC="clang"
ENV CXX="clang++"
ENV nprocs=${nprocs}
RUN \
--mount=type=cache,dst=/var/lock/uwu/local,sharing=locked \
--mount=type=cache,dst=/var/lock/uwu/rocksdb,sharing=locked \
<<EOF
set -eux

View File

@@ -1107,10 +1107,13 @@ target "deps-base" {
)
CARGO_PROFILE_TEST_DEBUG = "false"
CARGO_PROFILE_BENCH_DEBUG = "false"
CARGO_PROFILE_TEST_BUILD_OVERRIDE_DEBUG = "false"
CARGO_PROFILE_TEST_INCREMENTAL = "false"
CARGO_PROFILE_BENCH_DEBUG = "limited"
CARGO_PROFILE_BENCH_BUILD_OVERRIDE_DEBUG = "false"
CARGO_PROFILE_BENCH_LTO = "false"
CARGO_PROFILE_BENCH_CODEGEN_UNITS = "1"
CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG = "true"
CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG = "false"
CARGO_PROFILE_RELEASE_LTO = "thin"
CARGO_BUILD_RUSTFLAGS = (
cargo_profile == "release-max-perf"?
@@ -1256,7 +1259,6 @@ target "recipe" {
elem_tag("recipe", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest")
]
target = "recipe"
output = ["type=cacheonly,compression=zstd,mode=min"]
matrix = rust_feat_sys
inherits = [
elem("preparing", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])