# syntax=docker/dockerfile:1.7 FROM rust:1.94.1-slim-bookworm AS builder WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends pkg-config libssl-dev libvips-dev ca-certificates curl \ && rm -rf /var/lib/apt/lists/* COPY Cargo.toml Cargo.lock ./ COPY src ./src RUN cargo build --release FROM debian:bookworm-slim AS runtime WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates apt-utils libssl3 libvips42 pkg-config libvips-dev git \ && rm -rf /var/lib/apt/lists/* \ && useradd --system --create-home --uid 10001 app COPY --from=builder /app/target/release/Web /usr/local/bin/web-api RUN mkdir -p /app/uploads/originals /app/uploads/variants \ && chown -R app:app /app ENV PORT=3000 ENV IMAGE_UPLOAD_DIR=/app/uploads/originals ENV IMAGE_VARIANT_DIR=/app/uploads/variants USER app EXPOSE 3000 CMD ["/usr/local/bin/web-api"]