FROM rust:1.91.1-bookworm AS builder WORKDIR /app COPY Cargo.toml Cargo.lock ./ COPY migration/Cargo.toml migration/Cargo.toml COPY src src COPY migration/src migration/src COPY config config COPY assets assets RUN cargo build --release --locked --bin termi_api-cli FROM debian:bookworm-slim AS runtime RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates tzdata wget \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /app/target/release/termi_api-cli /usr/local/bin/termi_api-cli COPY --from=builder /app/config ./config COPY --from=builder /app/assets ./assets COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh ENV RUST_LOG=info EXPOSE 5150 HEALTHCHECK --interval=30s --timeout=3s --start-period=15s --retries=5 CMD wget -q -O /dev/null http://127.0.0.1:5150/healthz || exit 1 ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["termi_api-cli", "-e", "production", "start", "--no-banner"]