Files
continuwuity/docker/Dockerfile.cargo
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

58 lines
2.2 KiB
Docker
Raw Normal View History

2025-03-15 04:23:24 +00:00
# syntax = docker/dockerfile:1.11-labs
FROM input AS cargo
ARG sys_target
ARG rust_target
2025-03-15 04:23:24 +00:00
ARG rust_toolchain
ARG RUSTUP_HOME
ARG CARGO_HOME
ARG CARGO_TARGET
ARG CARGO_TARGET_DIR
ARG cargo_target_profile
ARG cargo_target_artifact
ARG cargo_target_share
2025-03-15 04:23:24 +00:00
ARG cargo_profile
ARG cargo_features
2025-05-03 02:32:49 +00:00
ARG cargo_spec_features
2025-03-15 04:23:24 +00:00
ARG cargo_cmd
ARG cargo_args=""
2025-05-21 21:45:42 +00:00
WORKDIR /
COPY --link --from=input . .
2025-03-15 04:23:24 +00:00
WORKDIR /usr/lib/${sys_target}
COPY --link --from=rocksdb . .
WORKDIR /usr/src/tuwunel
ENV targ_dir="${CARGO_TARGET_DIR}/${cargo_target_profile}"
ENV targ_targ_dir="${CARGO_TARGET_DIR}/${rust_target}/${cargo_target_profile}"
2025-03-15 04:23:24 +00:00
RUN \
--mount=type=cache,dst=${RUSTUP_HOME}/downloads,sharing=shared \
--mount=type=cache,dst=${CARGO_HOME}/registry,sharing=shared \
--mount=type=cache,dst=${CARGO_HOME}/git,sharing=shared \
--mount=type=cache,dst=${targ_dir}/deps,id=${cargo_target_share}/deps,sharing=locked \
--mount=type=cache,dst=${targ_dir}/build,id=${cargo_target_share}/build,sharing=locked \
--mount=type=cache,dst=${targ_dir}/examples,id=${cargo_target_share}/examples,sharing=locked \
--mount=type=cache,dst=${targ_dir}/incremental,id=${cargo_target_share}/incremental,sharing=locked \
--mount=type=cache,dst=${targ_dir}/.fingerprint,id=${cargo_target_share}/fingerprint,sharing=locked \
--mount=type=cache,dst=${targ_targ_dir}/deps,id=${cargo_target_share}/deps,sharing=locked \
--mount=type=cache,dst=${targ_targ_dir}/build,id=${cargo_target_share}/build,sharing=locked \
--mount=type=cache,dst=${targ_targ_dir}/examples,id=${cargo_target_share}/examples,sharing=locked \
--mount=type=cache,dst=${targ_targ_dir}/incremental,id=${cargo_target_share}/incremental,sharing=locked \
--mount=type=cache,dst=${targ_targ_dir}/.fingerprint,id=${cargo_target_share}/fingerprint,sharing=locked \
2025-03-15 04:23:24 +00:00
<<EOF
set -eux
rustup run ${rust_toolchain} \
cargo ${cargo_cmd} \
2025-06-03 05:38:43 +00:00
--verbose \
--locked \
2025-03-15 04:23:24 +00:00
--workspace \
2025-05-03 02:32:49 +00:00
"${cargo_spec_features}" \
2025-03-15 04:23:24 +00:00
--features "${cargo_features}" \
--profile "${cargo_profile}" \
--target "${CARGO_TARGET}" \
--target-dir "${CARGO_TARGET_DIR}" \
--manifest-path Cargo.toml \
2025-05-10 04:29:08 +00:00
--color always \
2025-03-15 04:23:24 +00:00
${cargo_args}
EOF