From 915c6ea49aeabf7ab545566cf5a1690098910c3c Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 17:36:23 +0500 Subject: [PATCH 1/8] fix docker build --- Dockerfile | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index e35493215..c9d9ba98c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -81,14 +81,23 @@ ARG RBUILDER_BIN ARG FEATURES WORKDIR /app COPY . . -RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ +RUN set -eux; \ + case "$TARGETPLATFORM" in \ + "linux/amd64") ARCH_TAG="x86_64-unknown-linux-gnu" ;; \ + "linux/arm64") ARCH_TAG="aarch64-unknown-linux-gnu" ;; \ + *) \ + echo "Unsupported platform: $TARGETPLATFORM"; \ + exit 1 \ + ;; \ + esac; \ + SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=/app=." \ CARGO_INCREMENTAL=0 \ LC_ALL=C \ TZ=UTC \ CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ - cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target x86_64-unknown-linux-gnu + cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target "${ARCH_TAG}" # Runtime container for rbuilder FROM gcr.io/distroless/cc-debian12 AS rbuilder-runtime @@ -101,5 +110,5 @@ ENTRYPOINT ["/app/rbuilder"] FROM gcr.io/distroless/cc-debian12 AS rbuilder-reproducible-runtime ARG RBUILDER_BIN WORKDIR /app -COPY --from=rbuilder-reproducible /app/target/x86_64-unknown-linux-gnu/release/${RBUILDER_BIN} /app/rbuilder +COPY --from=rbuilder-reproducible /app/target/*/release/${RBUILDER_BIN} /app/rbuilder ENTRYPOINT ["/app/rbuilder"] From c21c592a61c799de4a7dc17b5e2cdcce455dd7d8 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 17:56:47 +0500 Subject: [PATCH 2/8] add ARG TARGETPLATFORM --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index c9d9ba98c..182ffa3e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,6 +79,7 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES +ARG TARGETPLATFORM WORKDIR /app COPY . . RUN set -eux; \ From 811b4a2abfd4d13b8694832d82f035778002f0dd Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 18:08:04 +0500 Subject: [PATCH 3/8] Try different approach --- Dockerfile | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 182ffa3e3..04bbf7fb4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -82,23 +82,14 @@ ARG FEATURES ARG TARGETPLATFORM WORKDIR /app COPY . . -RUN set -eux; \ - case "$TARGETPLATFORM" in \ - "linux/amd64") ARCH_TAG="x86_64-unknown-linux-gnu" ;; \ - "linux/arm64") ARCH_TAG="aarch64-unknown-linux-gnu" ;; \ - *) \ - echo "Unsupported platform: $TARGETPLATFORM"; \ - exit 1 \ - ;; \ - esac; \ - SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ +RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=/app=." \ CARGO_INCREMENTAL=0 \ LC_ALL=C \ TZ=UTC \ CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ - cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target "${ARCH_TAG}" + cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} # Runtime container for rbuilder FROM gcr.io/distroless/cc-debian12 AS rbuilder-runtime From 1f593ac29dd39a112815aeea85488441a60ffb89 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 18:10:52 +0500 Subject: [PATCH 4/8] Try different approach --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 04bbf7fb4..5b3b540f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,7 +79,6 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES -ARG TARGETPLATFORM WORKDIR /app COPY . . RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ From fffd76b3ad2df3c0e369350005ab032ab9fd25ad Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 18:24:54 +0500 Subject: [PATCH 5/8] Try different approach --- Dockerfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Dockerfile b/Dockerfile index 5b3b540f7..f695639a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,6 +79,27 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES + +ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="\ + --cfg tracing_unstable \ + --remap-path-prefix /app=. \ + -C codegen-units=1 \ + -C embed-bitcode=no \ + -C link-arg=-static-libgcc \ + -C link-arg=-Wl,--build-id=none \ + -C metadata=target \ + -C target-feature=+crt-static" + +ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="\ + --cfg tracing_unstable \ + --remap-path-prefix /app=. \ + -C codegen-units=1 \ + -C embed-bitcode=no \ + -C link-arg=-static-libgcc \ + -C link-arg=-Wl,--build-id=none \ + -C metadata=target \ + -C target-feature=+crt-static" + WORKDIR /app COPY . . RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ From af358f56d0a247431831ebd482013f83661fa4a0 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 18:26:45 +0500 Subject: [PATCH 6/8] Try different approach --- Dockerfile | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index f695639a1..b67ef86c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,25 +80,8 @@ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES -ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="\ - --cfg tracing_unstable \ - --remap-path-prefix /app=. \ - -C codegen-units=1 \ - -C embed-bitcode=no \ - -C link-arg=-static-libgcc \ - -C link-arg=-Wl,--build-id=none \ - -C metadata=target \ - -C target-feature=+crt-static" - -ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="\ - --cfg tracing_unstable \ - --remap-path-prefix /app=. \ - -C codegen-units=1 \ - -C embed-bitcode=no \ - -C link-arg=-static-libgcc \ - -C link-arg=-Wl,--build-id=none \ - -C metadata=target \ - -C target-feature=+crt-static" +ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." \ +ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." \ WORKDIR /app COPY . . From fe03a32e111715446f88b2923653f5cf79999b1d Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 18:31:57 +0500 Subject: [PATCH 7/8] Try different approach --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b67ef86c5..419170c84 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,8 +80,9 @@ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES -ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." \ -ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." \ +ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." + +ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." WORKDIR /app COPY . . From a6f87912e317e0128654aa1db71f3ee8af43b44a Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 7 Oct 2025 20:04:49 +0500 Subject: [PATCH 8/8] Try different approach --- Dockerfile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 419170c84..ab201aa8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,6 +79,7 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES +ARG TARGETPLATFORM ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." @@ -86,14 +87,22 @@ ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-sta WORKDIR /app COPY . . -RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ +RUN case "$TARGETPLATFORM" in \ + "linux/amd64") ARCH_TAG="x86_64-unknown-linux-gnu" ;; \ + "linux/arm64") ARCH_TAG="aarch64-unknown-linux-gnu" ;; \ + *) \ + echo "Unsupported platform: $TARGETPLATFORM"; \ + exit 1 \ + ;; \ + esac; \ + SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=/app=." \ CARGO_INCREMENTAL=0 \ LC_ALL=C \ TZ=UTC \ CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ - cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} + cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target "${ARCH_TAG}" # Runtime container for rbuilder FROM gcr.io/distroless/cc-debian12 AS rbuilder-runtime