Files
tuwunel/docker/Dockerfile.cargo.deb
Jason Volk b59277e5a9 docker: Fix a few too many copies (3ffc238799).
docker: Additional tweaks.

Signed-off-by: Jason Volk <jason@zemos.net>
2025-05-29 18:46:11 +00:00

65 lines
1.4 KiB
Docker

# syntax = docker/dockerfile:1.11-labs
FROM input AS debuild
ARG sys_target
ARG rust_toolchain
ARG RUSTUP_HOME
ARG CARGO_HOME
ARG CARGO_TARGET
ARG CARGO_TARGET_DIR
ARG cargo_profile
ARG cargo_features
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 \
--mount=type=cache,dst=${CARGO_HOME},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR},sharing=locked \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/deps,sharing=shared \
--mount=type=cache,dst=${CARGO_TARGET_DIR}/build,sharing=shared \
<<EOF
set -eux
mkdir -p "${pkg_dir}"
rustup run ${rust_toolchain} \
cargo deb \
--frozen \
--no-build \
"${cargo_spec_features}" \
--features "${cargo_features}" \
--profile "${cargo_profile}" \
--target "${CARGO_TARGET}" \
--manifest-path Cargo.toml \
--multiarch same \
--compress-type gz \
--output "${pkg_dir}" \
${deb_args}
dpkg --info ${pkg_dir}/*
dpkg --contents ${pkg_dir}/*
EOF
FROM scratch AS package
ARG pkg_dir
COPY --from=debuild ${pkg_dir}/* .
FROM input AS package-install
ARG pkg_dir
WORKDIR ${pkg_dir}
COPY --link --from=package . .
RUN <<EOF
set -eux
dpkg --info *
dpkg --contents *
dpkg --install *
EOF