From a7ceded712c4568b7d938dc01e55c5994b1567a7 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 24 Oct 2023 11:47:11 +0200 Subject: [PATCH] Statically link on default target --- hole-punching-tests/Dockerfile | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hole-punching-tests/Dockerfile b/hole-punching-tests/Dockerfile index 67662b3fb38e..12b870a226cb 100644 --- a/hole-punching-tests/Dockerfile +++ b/hole-punching-tests/Dockerfile @@ -1,21 +1,17 @@ # syntax=docker/dockerfile:1.5-labs FROM rust:1.72.0 as builder -ARG RUST_TARGET - -RUN rustup target add $RUST_TARGET - -RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y musl-dev musl-tools - # Run with access to the target cache to speed up builds WORKDIR /workspace ADD . . + +# Build the relay as a statically-linked binary. Unfortunately, we must specify the `--target` explicitly. See https://msfjarvis.dev/posts/building-static-rust-binaries-for-linux/. RUN --mount=type=cache,target=./target \ --mount=type=cache,target=/usr/local/cargo/registry \ - cargo build --release --package hole-punching-tests --target $RUST_TARGET + RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --package hole-punching-tests --target $(rustc -vV | grep host | awk '{print $2}') RUN --mount=type=cache,target=./target \ - mv ./target/$RUST_TARGET/release/hole-punching-tests /usr/local/bin/hole-punching-tests + mv ./target/$(rustc -vV | grep host | awk '{print $2}')/release/hole-punching-tests /usr/local/bin/hole-punching-tests FROM alpine:3 COPY --from=builder /usr/local/bin/hole-punching-tests /usr/bin/hole-punch-client