docker: Further optimize multi-layered build.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -13,6 +13,9 @@ ARG cargo_spec_features
|
|||||||
ARG pkg_dir
|
ARG pkg_dir
|
||||||
ARG deb_args=""
|
ARG deb_args=""
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
WORKDIR /usr/src/tuwunel
|
WORKDIR /usr/src/tuwunel
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ WORKDIR /usr/lib/${sys_target}
|
|||||||
COPY --from=rocksdb . .
|
COPY --from=rocksdb . .
|
||||||
|
|
||||||
WORKDIR /usr/src/tuwunel
|
WORKDIR /usr/src/tuwunel
|
||||||
COPY --link --from=recipe recipe.json .
|
COPY --from=recipe recipe.json .
|
||||||
|
|
||||||
ENV CARGO_BUILD_RUSTFLAGS=${CARGO_BUILD_RUSTFLAGS}
|
ENV CARGO_BUILD_RUSTFLAGS=${CARGO_BUILD_RUSTFLAGS}
|
||||||
RUN \
|
RUN \
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ ARG cargo_spec_features
|
|||||||
ARG pkg_dir
|
ARG pkg_dir
|
||||||
ARG gen_rpm_args=""
|
ARG gen_rpm_args=""
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
WORKDIR /usr/src/tuwunel
|
WORKDIR /usr/src/tuwunel
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ ARG CARGO_TARGET
|
|||||||
ARG rustup_version="1.28.1"
|
ARG rustup_version="1.28.1"
|
||||||
ARG rustup_components
|
ARG rustup_components
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
WORKDIR /opt
|
WORKDIR /opt
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
||||||
@@ -50,6 +53,9 @@ ARG CARGO_HOME
|
|||||||
ARG CARGO_TARGET
|
ARG CARGO_TARGET
|
||||||
ARG cargo_installs
|
ARG cargo_installs
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
|
||||||
--mount=type=cache,dst=${CARGO_HOME},sharing=locked \
|
--mount=type=cache,dst=${CARGO_HOME},sharing=locked \
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ ARG var_cache
|
|||||||
ARG var_lib_apt
|
ARG var_lib_apt
|
||||||
ARG packages
|
ARG packages
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
ENV packages="ca-certificates ${packages}"
|
ENV packages="ca-certificates ${packages}"
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${var_cache},sharing=locked \
|
--mount=type=cache,dst=${var_cache},sharing=locked \
|
||||||
@@ -31,6 +34,9 @@ FROM input AS valgrind
|
|||||||
ARG var_cache
|
ARG var_cache
|
||||||
ARG var_lib_apt
|
ARG var_lib_apt
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${var_cache},sharing=locked \
|
--mount=type=cache,dst=${var_cache},sharing=locked \
|
||||||
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
|
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
|
||||||
@@ -44,6 +50,9 @@ FROM input AS perf
|
|||||||
ARG var_cache
|
ARG var_cache
|
||||||
ARG var_lib_apt
|
ARG var_lib_apt
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${var_cache},sharing=locked \
|
--mount=type=cache,dst=${var_cache},sharing=locked \
|
||||||
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
|
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ ARG CARGO_HOME
|
|||||||
ARG CARGO_TARGET
|
ARG CARGO_TARGET
|
||||||
ARG CARGO_TERM_VERBOSE=0
|
ARG CARGO_TERM_VERBOSE=0
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
WORKDIR /usr/src/tuwunel
|
WORKDIR /usr/src/tuwunel
|
||||||
COPY --link --from=source /usr/src/tuwunel .
|
COPY --link --from=source /usr/src/tuwunel .
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ xz-utils \
|
|||||||
${packages} \
|
${packages} \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
--mount=type=cache,dst=${var_cache},sharing=locked \
|
--mount=type=cache,dst=${var_cache},sharing=locked \
|
||||||
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
|
--mount=type=cache,dst=${var_lib_apt},sharing=locked \
|
||||||
|
|||||||
Reference in New Issue
Block a user