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"