# ── Build Stage ────────────────────────────────────────────────────────────── FROM rust:1.86.0-slim AS builder WORKDIR /app RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ && rm -rf /var/lib/apt/lists/* # Cache dependencies COPY Cargo.toml Cargo.lock rust-toolchain.toml ./ RUN mkdir src && echo "fn main() {}" > src/main.rs RUN cargo build --release RUN rm -rf src # Build actual app COPY src ./src RUN cargo build --release # ── Runtime Stage ───────────────────────────────────────────────────────────── FROM debian:bookworm-slim WORKDIR /app RUN apt-get update && apt-get install -y \ ca-certificates \ libssl3 \ && rm -rf /var/lib/apt/lists/* RUN useradd -m appuser USER appuser COPY --from=builder /app/target/release/chat . EXPOSE 3000 CMD ["./chat"]