# Build stage FROM rust:1.85-slim AS builder WORKDIR /app # Install 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 dummy files to cache dependencies RUN mkdir src && echo "fn main() {}" > src/main.rs && echo "pub fn dummy() {}" > src/lib.rs RUN cargo build --release && rm -rf src # Copy actual source code COPY src ./src # Build the actual binary RUN touch src/main.rs && cargo build --release # Final stage FROM debian:bookworm-slim RUN apt-get update && apt-get install -y ca-certificates wget && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy binary from builder COPY --from=builder /app/target/release/boc-rust-service . # Expose port EXPOSE 9093 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget -q --spider http://localhost:9093/health || exit 1 # Run the binary CMD ["./boc-rust-service"]