hyperlane-performance 22.1.0

Reproducible multi-protocol performance tools for Hyperlane.
Documentation
FROM rust:1.99-alpine AS base
RUN apk add --no-cache build-base perl

FROM base AS server
WORKDIR /src/hyperlane
COPY . /src/hyperlane/
RUN cargo build --release --locked -p hyperlane-performance --bin hyperlane-performance-server

FROM base AS loadgen
WORKDIR /src/hyperlane
COPY . /src/hyperlane/
RUN cargo build --release --locked -p hyperlane-performance --bin hyperlane-performance-loadgen

FROM base AS control
WORKDIR /src/hyperlane
COPY . /src/hyperlane/
RUN cargo build --release --locked -p hyperlane-performance --bin hyperlane-performance-control

FROM alpine:3.22 AS server-runtime
RUN apk add --no-cache libgcc
COPY --from=server /src/hyperlane/target/release/hyperlane-performance-server /usr/local/bin/hyperlane-performance-server
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/hyperlane-performance-server"]

FROM alpine:3.22 AS loadgen-runtime
COPY --from=loadgen /src/hyperlane/target/release/hyperlane-performance-loadgen /usr/local/bin/hyperlane-performance-loadgen
ENTRYPOINT ["/usr/local/bin/hyperlane-performance-loadgen"]

FROM alpine:3.22 AS control-runtime
RUN apk add --no-cache libgcc
COPY --from=control /src/hyperlane/target/release/hyperlane-performance-control /usr/local/bin/hyperlane-performance-control
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/hyperlane-performance-control"]