# syntax = docker/dockerfile:1.11-labs FROM input AS deps ARG sys_target ARG rust_toolchain ARG RUSTUP_HOME ARG CARGO_HOME ARG CARGO_TARGET ARG CARGO_TARGET_DIR ARG cargo_tgt_dst 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_RELEASE_BUILD_OVERRIDE_DEBUG ARG CARGO_PROFILE_RELEASE_LTO ARG cargo_profile ARG cargo_features ARG cargo_spec_features ARG cook_args ARG git_checkout WORKDIR / COPY --link --from=input . . WORKDIR /usr/lib/${sys_target} COPY --link --from=rocksdb . . WORKDIR /usr/src/tuwunel 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_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},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 \ --mount=type=cache,dst=${CARGO_TARGET_DIR}/${cargo_tgt_sub}/.fingerprint,id=${cargo_tgt_cache}/fingerprint,sharing=locked \ <