mirror of
https://github.com/tlsnotary/tlsn.git
synced 2026-01-08 22:28:15 -05:00
57 lines
1.6 KiB
Docker
57 lines
1.6 KiB
Docker
FROM rust AS builder
|
|
WORKDIR /usr/src/tlsn
|
|
COPY . .
|
|
|
|
ARG BENCH_TYPE=native
|
|
|
|
RUN \
|
|
rustup update; \
|
|
if [ "$BENCH_TYPE" = "browser" ]; then \
|
|
# ring's build script needs clang.
|
|
apt update && apt install -y clang; \
|
|
rustup install nightly; \
|
|
rustup component add rust-src --toolchain nightly; \
|
|
cargo install wasm-pack; \
|
|
cd crates/benches/browser/wasm; \
|
|
wasm-pack build --release --locked --target web; \
|
|
cd ../../binary; \
|
|
cargo build --release --features browser-bench --locked; \
|
|
else \
|
|
cd crates/benches/binary; \
|
|
cargo build --release --locked; \
|
|
fi
|
|
|
|
FROM debian:latest
|
|
|
|
ARG BENCH_TYPE=native
|
|
|
|
RUN apt update && apt upgrade -y && apt install -y --no-install-recommends \
|
|
iproute2 \
|
|
sudo
|
|
|
|
RUN \
|
|
if [ "$BENCH_TYPE" = "browser" ]; then \
|
|
# Using Chromium since Chrome for Linux is not available on ARM.
|
|
apt install -y chromium; \
|
|
fi
|
|
|
|
RUN apt clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder \
|
|
["/usr/src/tlsn/target/release/bench", \
|
|
"/usr/src/tlsn/target/release/prover", \
|
|
"/usr/src/tlsn/target/release/prover-memory", \
|
|
"/usr/src/tlsn/target/release/verifier", \
|
|
"/usr/src/tlsn/target/release/verifier-memory", \
|
|
"/usr/src/tlsn/target/release/plot", \
|
|
"/usr/local/bin/"]
|
|
|
|
ENV PROVER_PATH="/usr/local/bin/prover"
|
|
ENV VERIFIER_PATH="/usr/local/bin/verifier"
|
|
ENV PROVER_MEMORY_PATH="/usr/local/bin/prover-memory"
|
|
ENV VERIFIER_MEMORY_PATH="/usr/local/bin/verifier-memory"
|
|
|
|
VOLUME [ "/benches" ]
|
|
WORKDIR "/benches"
|
|
CMD ["/bin/bash", "-c", "bench && bench --memory-profiling && plot /benches/metrics.csv && cat /benches/metrics.csv"]
|