FROM rust:1.94-bookworm AS builder
WORKDIR /src
COPY services/relay/Cargo.toml services/relay/Cargo.toml
COPY services/relay/Cargo.lock services/relay/Cargo.lock
COPY services/relay/src services/relay/src
RUN cargo fetch --locked --manifest-path services/relay/Cargo.toml
RUN cargo build --locked --release --manifest-path services/relay/Cargo.toml

FROM debian:bookworm-slim
RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates wget \
    && rm -rf /var/lib/apt/lists/* \
    && useradd --system --uid 10001 --no-create-home --shell /usr/sbin/nologin relay
COPY --from=builder /src/services/relay/target/release/veilcord-relay /usr/local/bin/veilcord-relay
COPY --from=builder /src/services/relay/target/release/relay-admin /usr/local/bin/relay-admin
COPY services/relay/healthcheck.sh /usr/local/bin/relay-healthcheck
RUN chmod 0555 /usr/local/bin/veilcord-relay /usr/local/bin/relay-admin /usr/local/bin/relay-healthcheck
USER relay
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 CMD ["/usr/local/bin/relay-healthcheck"]
ENTRYPOINT ["/usr/local/bin/veilcord-relay"]
