From 3ffc238799bebaf4c9a0cc7b195831d1fca090e0 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 27 May 2025 04:08:19 +0000 Subject: [PATCH] docker: Further optimize multi-layered build. Signed-off-by: Jason Volk --- docker/Dockerfile.cargo.deb | 3 +++ docker/Dockerfile.cargo.deps | 2 +- docker/Dockerfile.cargo.rpm | 3 +++ docker/Dockerfile.cookware | 6 ++++++ docker/Dockerfile.diner | 9 +++++++++ docker/Dockerfile.ingredients | 3 +++ docker/Dockerfile.kitchen | 3 +++ 7 files changed, 28 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile.cargo.deb b/docker/Dockerfile.cargo.deb index c2455a9a..63de4d76 100644 --- a/docker/Dockerfile.cargo.deb +++ b/docker/Dockerfile.cargo.deb @@ -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 \ diff --git a/docker/Dockerfile.cargo.deps b/docker/Dockerfile.cargo.deps index dd2429f2..8129a697 100644 --- a/docker/Dockerfile.cargo.deps +++ b/docker/Dockerfile.cargo.deps @@ -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 \ diff --git a/docker/Dockerfile.cargo.rpm b/docker/Dockerfile.cargo.rpm index 2063e763..dfd86616 100644 --- a/docker/Dockerfile.cargo.rpm +++ b/docker/Dockerfile.cargo.rpm @@ -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 \ diff --git a/docker/Dockerfile.cookware b/docker/Dockerfile.cookware index e47b38d1..1cccfec1 100644 --- a/docker/Dockerfile.cookware +++ b/docker/Dockerfile.cookware @@ -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 \ diff --git a/docker/Dockerfile.diner b/docker/Dockerfile.diner index 86f7e5aa..ef700232 100644 --- a/docker/Dockerfile.diner +++ b/docker/Dockerfile.diner @@ -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 \ diff --git a/docker/Dockerfile.ingredients b/docker/Dockerfile.ingredients index 4a4284fb..61767227 100644 --- a/docker/Dockerfile.ingredients +++ b/docker/Dockerfile.ingredients @@ -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 . diff --git a/docker/Dockerfile.kitchen b/docker/Dockerfile.kitchen index 18a922fa..d343233f 100644 --- a/docker/Dockerfile.kitchen +++ b/docker/Dockerfile.kitchen @@ -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 \