FROM rust:1.98-trixie as builder WORKDIR /app COPY Cargo.toml Cargo.lock ./ COPY crates/ crates/ RUN cargo build --release --package herald-server FROM debian:trixie-slim # git clones the pull request. ca-certificates is what every HTTPS call needs # (Gitea, OpenRouter, git). The shared libraries are the non-base ones the binary # links against, as reported by `ldd target/release/herald-server`; libc, libm # and libgcc_s come from the base image. RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ git \ libssl3t64 \ libzstd1 \ zlib1g \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /app/target/release/herald-server ./herald-server # Exec form, so the binary is PID 1 and receives the SIGTERM it handles to shut # down gracefully. CMD ["./herald-server"]