diff --git a/Dockerfile b/Dockerfile index 607ac30c..8b62fab5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ ARG SYNCTV_BUILD_FEATURES="k8s,mimalloc,openapi" ARG SYNCTV_CARGO_BUILD_ARGS="" ARG SYNCTV_CARGO_BUILD_PROFILE=release ARG CARGO_INCREMENTAL=0 -ARG CARGO_TERM_COLOR="" +ARG CARGO_TERM_COLOR="auto" ARG TARGETARCH # Clean CI runners benefit from deterministic non-incremental compilation. @@ -44,14 +44,13 @@ COPY . . # Copy binary out of cache mount before RUN completes RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/usr/local/cargo/git \ - --mount=type=cache,id=synctv-target-${TARGETARCH},target=/app/target,sharing=locked \ + --mount=type=cache,id=synctv-target-${SYNCTV_CARGO_BUILD_PROFILE}-${TARGETARCH},target=/app/target,sharing=locked \ case "$SYNCTV_CARGO_BUILD_PROFILE" in \ dev) target_profile_dir=debug ;; \ release) target_profile_dir=release ;; \ *) echo "Unsupported SYNCTV_CARGO_BUILD_PROFILE: $SYNCTV_CARGO_BUILD_PROFILE" >&2; exit 1 ;; \ esac; \ build_flags="--profile $SYNCTV_CARGO_BUILD_PROFILE"; \ - build_flags="$build_flags --config 'build.rustflags=[\"-Clink-arg=-Wl,-z,pack-relative-relocs\"]'"; \ if [ -n "$SYNCTV_CARGO_BUILD_ARGS" ]; then \ build_flags="$build_flags $SYNCTV_CARGO_BUILD_ARGS"; \ fi; \ @@ -61,7 +60,10 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ if [ -n "$SYNCTV_BUILD_FEATURES" ]; then \ build_flags="$build_flags --features $SYNCTV_BUILD_FEATURES"; \ fi; \ - cargo +nightly build $build_flags --bin synctv && \ + cargo +nightly \ + --config 'build.rustflags=["-Clink-arg=-Wl,-z,pack-relative-relocs"]' \ + build $build_flags \ + --bin synctv && \ cp "target/$target_profile_dir/synctv" /synctv # Stage 2: Runtime image