docker: Further optimize multi-layered build.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-05-27 04:08:19 +00:00
parent 98bbf58121
commit 3ffc238799
7 changed files with 28 additions and 1 deletions

View File

@@ -13,6 +13,9 @@ ARG cargo_spec_features
ARG pkg_dir
ARG deb_args=""
WORKDIR /
COPY --link --from=input . .
WORKDIR /usr/src/tuwunel
RUN \
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \

View File

@@ -18,7 +18,7 @@ WORKDIR /usr/lib/${sys_target}
COPY --from=rocksdb . .
WORKDIR /usr/src/tuwunel
COPY --link --from=recipe recipe.json .
COPY --from=recipe recipe.json .
ENV CARGO_BUILD_RUSTFLAGS=${CARGO_BUILD_RUSTFLAGS}
RUN \

View File

@@ -13,6 +13,9 @@ ARG cargo_spec_features
ARG pkg_dir
ARG gen_rpm_args=""
WORKDIR /
COPY --link --from=input . .
WORKDIR /usr/src/tuwunel
RUN \
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \

View File

@@ -8,6 +8,9 @@ ARG CARGO_TARGET
ARG rustup_version="1.28.1"
ARG rustup_components
WORKDIR /
COPY --link --from=input . .
WORKDIR /opt
RUN \
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
@@ -50,6 +53,9 @@ ARG CARGO_HOME
ARG CARGO_TARGET
ARG cargo_installs
WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
--mount=type=cache,dst=${CARGO_HOME},sharing=locked \

View File

@@ -11,6 +11,9 @@ ARG var_cache
ARG var_lib_apt
ARG packages
WORKDIR /
COPY --link --from=input . .
ENV packages="ca-certificates ${packages}"
RUN \
--mount=type=cache,dst=${var_cache},sharing=locked \
@@ -31,6 +34,9 @@ FROM input AS valgrind
ARG var_cache
ARG var_lib_apt
WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
@@ -44,6 +50,9 @@ FROM input AS perf
ARG var_cache
ARG var_lib_apt
WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \

View File

@@ -22,6 +22,9 @@ ARG CARGO_HOME
ARG CARGO_TARGET
ARG CARGO_TERM_VERBOSE=0
WORKDIR /
COPY --link --from=input . .
WORKDIR /usr/src/tuwunel
COPY --link --from=source /usr/src/tuwunel .

View File

@@ -21,6 +21,9 @@ xz-utils \
${packages} \
"
WORKDIR /
COPY --link --from=input . .
RUN \
--mount=type=cache,dst=${var_cache},sharing=locked \
--mount=type=cache,dst=${var_lib_apt},sharing=locked \