# Multi-stage build for Poimen Memory Service (Rust) # Stage 1: Builder FROM rust:1-bookworm as builder WORKDIR /build # Copy source COPY . . # Build the mem binary (offline mode - no DATABASE_URL needed) ENV SQLX_OFFLINE=true RUN cargo build --release -p mem-cli # Stage 2: Runtime FROM debian:bookworm-slim WORKDIR /app # Install runtime dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ libssl3 \ postgresql-client \ curl \ && rm -rf /var/lib/apt/lists/* # Copy binary from builder COPY --from=builder /build/target/release/mem /app/mem # Expose port EXPOSE 8080 # Health check HEALTHCHECK --interval=10s --timeout=5s --start-period=10s --retries=3 \ CMD curl -f http://localhost:8080/health || exit 1 # Run CMD ["/app/mem"]