# Build stage FROM rust:1.90.0-slim-trixie as builder # Create app directory WORKDIR /app # Copy manifests COPY Cargo.toml Cargo.lock ./ # Copy source code COPY src ./src # Build for release RUN cargo build --release # Runtime stage FROM debian:bookworm-slim # Install runtime dependencies (if needed, e.g., for SSL) RUN apt-get update && \ apt-get install -y --no-install-recommends ca-certificates && \ rm -rf /var/lib/apt/lists/* # Create non-root user RUN useradd -m -u 1000 appuser # Set working directory WORKDIR /app # Copy only the binary from builder COPY --from=builder /app/target/release/delivery-backend /app/service # Change ownership to non-root user RUN chown -R appuser:appuser /app # Switch to non-root user USER appuser # Expose port (adjust as needed) EXPOSE 8080 # Run the binary CMD ["/app/service"]