From ec8016cc36dd81f38016bb557ae1a77aa3e934b4 Mon Sep 17 00:00:00 2001 From: kittentm Date: Sun, 14 Jun 2026 22:29:59 +0200 Subject: [PATCH] feat: add Dockerfile --- Dockerfile | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dca79c9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +# syntax=docker/dockerfile:1 +FROM rust:alpine AS chef +RUN apk add --no-cache openssl-dev musl-dev openssl-libs-static lld git g++ make cmake +RUN cargo install cargo-chef +WORKDIR /app + +FROM chef AS planner +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +FROM chef AS builder +COPY --from=planner /app/recipe.json recipe.json + +ENV OPENSSL_LIB_DIR=/usr/lib +ENV OPENSSL_INCLUDE_DIR=/usr/include/openssl +ENV OPENSSL_STATIC=1 + +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/app/target \ + cargo chef cook --release --recipe-path recipe.json --target x86_64-unknown-linux-musl + +COPY . . + +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/app/target \ + cargo build --release --target x86_64-unknown-linux-musl && \ + mkdir -p /app/dist && \ + cp /app/target/x86_64-unknown-linux-musl/release/tagaya /app/dist/ + +FROM alpine:latest AS final +WORKDIR /app + +COPY --from=builder /app/dist/tagaya ./tagaya + +EXPOSE 3000 + +ENTRYPOINT ["./tagaya"]