# Use a lightweight Rust image FROM rust:1.82-slim as builder WORKDIR /app # Install build dependencies RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ && rm -rf /var/lib/apt/lists/* # Copy Cargo files COPY Cargo.toml Cargo.lock ./ # Create a dummy main.rs to cache dependencies RUN mkdir src && echo "fn main() {}" > src/main.rs # Build dependencies RUN cargo build --release && rm -rf src # Copy actual source code COPY src ./src # Build the application RUN touch src/main.rs && cargo build --release # Runtime image FROM debian:bookworm-slim RUN apt-get update && apt-get install -y \ ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy the binary from builder COPY --from=builder /app/target/release/normogen-backend /app/normogen-backend # Expose port EXPOSE 8080 # Run the application CMD ["./normogen-backend"]