|
|
@ -42,8 +42,6 @@ ARG TARGETARCH |
|
|
ARG TARGETVARIANT |
|
|
ARG TARGETVARIANT |
|
|
ARG TARGETPLATFORM |
|
|
ARG TARGETPLATFORM |
|
|
|
|
|
|
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"] |
|
|
|
|
|
|
|
|
|
|
|
# Build time options to avoid dpkg warnings and help with reproducible builds. |
|
|
# Build time options to avoid dpkg warnings and help with reproducible builds. |
|
|
ENV DEBIAN_FRONTEND=noninteractive \ |
|
|
ENV DEBIAN_FRONTEND=noninteractive \ |
|
|
LANG=C.UTF-8 \ |
|
|
LANG=C.UTF-8 \ |
|
|
@ -80,7 +78,7 @@ RUN mkdir -pv "${CARGO_HOME}" && \ |
|
|
RUN USER=root cargo new --bin /app |
|
|
RUN USER=root cargo new --bin /app |
|
|
WORKDIR /app |
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
RUN source /env-cargo && \ |
|
|
RUN . /env-cargo && \ |
|
|
rustup target add "${CARGO_TARGET}" |
|
|
rustup target add "${CARGO_TARGET}" |
|
|
|
|
|
|
|
|
# Copies over *only* your manifests and build files |
|
|
# Copies over *only* your manifests and build files |
|
|
@ -96,7 +94,7 @@ ARG FEATURES=s3 |
|
|
# Builds your dependencies and removes the |
|
|
# Builds your dependencies and removes the |
|
|
# dummy project, except the target folder |
|
|
# dummy project, except the target folder |
|
|
# This folder contains the compiled dependencies |
|
|
# This folder contains the compiled dependencies |
|
|
RUN source /env-cargo && \ |
|
|
RUN . /env-cargo && \ |
|
|
# Workaround for xx related build issues |
|
|
# Workaround for xx related build issues |
|
|
# https://github.com/tonistiigi/xx/pull/108#issuecomment-3700635977 |
|
|
# https://github.com/tonistiigi/xx/pull/108#issuecomment-3700635977 |
|
|
PKG_CONFIG="$(command -v "$(xx-info)-pkg-config")" xx-cargo build --features "${DB}" --features "${FEATURES}" --profile "${CARGO_PROFILE}" && \ |
|
|
PKG_CONFIG="$(command -v "$(xx-info)-pkg-config")" xx-cargo build --features "${DB}" --features "${FEATURES}" --profile "${CARGO_PROFILE}" && \ |
|
|
@ -109,7 +107,7 @@ COPY . . |
|
|
ARG VW_VERSION |
|
|
ARG VW_VERSION |
|
|
|
|
|
|
|
|
# Builds again, this time it will be the actual source files being build |
|
|
# Builds again, this time it will be the actual source files being build |
|
|
RUN source /env-cargo && \ |
|
|
RUN . /env-cargo && \ |
|
|
# Make sure that we actually build the project by updating the src/main.rs timestamp |
|
|
# Make sure that we actually build the project by updating the src/main.rs timestamp |
|
|
# Also do this for build.rs to ensure the version is rechecked |
|
|
# Also do this for build.rs to ensure the version is rechecked |
|
|
touch build.rs src/main.rs && \ |
|
|
touch build.rs src/main.rs && \ |
|
|
@ -117,7 +115,7 @@ RUN source /env-cargo && \ |
|
|
# Workaround for xx related build issues |
|
|
# Workaround for xx related build issues |
|
|
# https://github.com/tonistiigi/xx/pull/108#issuecomment-3700635977 |
|
|
# https://github.com/tonistiigi/xx/pull/108#issuecomment-3700635977 |
|
|
PKG_CONFIG="$(command -v "$(xx-info)-pkg-config")" xx-cargo build --features "${DB}" --features "${FEATURES}" --profile "${CARGO_PROFILE}" && \ |
|
|
PKG_CONFIG="$(command -v "$(xx-info)-pkg-config")" xx-cargo build --features "${DB}" --features "${FEATURES}" --profile "${CARGO_PROFILE}" && \ |
|
|
if [[ "${CARGO_PROFILE}" == "dev" ]] ; then \ |
|
|
if test "${CARGO_PROFILE}" = "dev"; then \ |
|
|
ln -vfsr "/app/target/${CARGO_TARGET}/debug" /app/target/final ; \ |
|
|
ln -vfsr "/app/target/${CARGO_TARGET}/debug" /app/target/final ; \ |
|
|
else \ |
|
|
else \ |
|
|
ln -vfsr "/app/target/${CARGO_TARGET}/${CARGO_PROFILE}" /app/target/final ; \ |
|
|
ln -vfsr "/app/target/${CARGO_TARGET}/${CARGO_PROFILE}" /app/target/final ; \ |
|
|
|