From 841e83f401be10be384c53025d2be6118bb96cbf Mon Sep 17 00:00:00 2001 From: Keivan-sf Date: Sun, 27 Jul 2025 22:45:10 +0330 Subject: [PATCH] Use docker to build binaries Since I use nix and the target does not work on other linux distros --- .dockerignore | 3 +++ .gitignore | 2 ++ Dockerfile | 14 ++++++++++++++ docker-build.sh | 21 +++++++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100755 docker-build.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6095303 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +target +docker_target +.git diff --git a/.gitignore b/.gitignore index ea8c4bf..355c20a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /target +/docker_target +v2parser diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..91fe112 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM rust:slim AS builder + +RUN apt-get update && apt-get install -y \ + pkg-config libssl-dev build-essential curl git \ + && rm -rf /var/lib/apt/lists/* + +RUN rustup target add x86_64-unknown-linux-gnu + +WORKDIR /app + +COPY . . + +# Build for the target +RUN cargo build --release --target x86_64-unknown-linux-gnu diff --git a/docker-build.sh b/docker-build.sh new file mode 100755 index 0000000..bd66ed6 --- /dev/null +++ b/docker-build.sh @@ -0,0 +1,21 @@ +#!env bash +set -e + +BIN_NAME="v2parser" +TARGET_TRIPLE="x86_64-unknown-linux-gnu" +HOST_TARGET_DIR="$(pwd)/target/$TARGET_TRIPLE/release" + +docker build \ + --platform=linux/amd64 \ + -t rust-builder-temp \ + -f Dockerfile . + +container_id=$(docker create rust-builder-temp) + +mkdir -p ./target + +docker cp "$container_id:/app/target/$TARGET_TRIPLE/release/$BIN_NAME" "./$BIN_NAME" +docker rm "$container_id" + +chmod +x "./$BIN_NAME" +echo "✅ Built binary: ./$BIN_NAME"