# syntax=docker/dockerfile:1 # Zesdex — Multi-stage Docker build # =================================== # Stage 1: Build with Rust toolchain FROM rust:1.85-slim-bookworm AS builder RUN apt-get update && apt-get install -y --no-install-recommends \ pkg-config libsqlite3-dev && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY . . # Build with release profile (treats warnings as errors via lints) RUN cargo build --release -p zesdex-backend --bin zesdex # Stage 2: Minimal runtime image FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates libsqlite3-0 && \ rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/zesdex /usr/local/bin/zesdex ENV ZESDEX_DATA_DIR=/data VOLUME ["/data"] ENTRYPOINT ["/usr/local/bin/zesdex"]