Files
TrustTunnel/bench/Dockerfile
Andrey Yakushin 916dbee141 Pull request 125: More reliable bench tests
Squashed commit of the following:

commit 1fefa6fcfa65ed07e0dc28eb7aef7ef620495f95
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Thu Jan 29 14:31:49 2026 +0400

    Return socks5 tests

commit a71e1d6a44f955170bad6234d01b4879cce566da
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Thu Jan 22 18:45:35 2026 +0400

    Make small files download test common for all wg, ag and no-vpn

commit 33570bf4c805f903bd065a6b65ecf300ae47a687
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Thu Jan 22 18:44:53 2026 +0400

    Fix proxy url

commit 7ad4b9ea6e04e8c3b7b49ea672956cc1f4c04a89
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Thu Jan 22 18:44:49 2026 +0400

    Fix paths

commit 13fd358f2e8a68bdb4e834231d8c3dd65441facd
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Thu Jan 22 18:44:31 2026 +0400

    Parametrize upload with http2 or http3

commit 852789f96aed436a71b18e877ab08c879cbdea12
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Fri Jan 16 22:14:11 2026 +0400

    Install curl with http3 support

commit 5860b536a752dffe5fc34a33726fb98e5f3cb80b
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Fri Jan 16 22:13:57 2026 +0400

    Install prebuilt cmake instead of building from source

commit 42649ae32ef014afabaeafdc07ab3538f811bfef
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Fri Jan 16 17:16:09 2026 +0400

    http2 and http3 for nginx server

commit 771f9d067f2b4ebfa4c40020b4aa6fe9a7ff1beb
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Fri Jan 16 15:19:46 2026 +0400

    Parametrize download test with http proto

commit 572e59eb2fe52d9ad2745df99d9e22d3cdb0088d
Author: Andrey Yakushin <a.yakushin@adguard.com>
Date:   Fri Jan 16 14:34:30 2026 +0400

    Remove iperf benchs
2026-01-30 18:12:06 +00:00

54 lines
1.9 KiB
Docker

# syntax=docker/dockerfile:1
FROM python:3.13-slim-bullseye
ARG RUST_CHANNEL=1.85
ARG LLVM_MAJOR_VER=17
# Install the required utilities
RUN apt update && \
apt install -y build-essential curl git gnupg lsb-release iproute2 \
net-tools software-properties-common wget tar libssl-dev xz-utils
# Install pre-built CMake
RUN set -ex; \
CMAKE_VERSION="3.31.10"; \
ARCH=$(uname -m); \
case "$ARCH" in \
x86_64) CMAKE_ARCH="x86_64" ;; \
aarch64) CMAKE_ARCH="aarch64" ;; \
*) echo "Unsupported architecture: $ARCH"; exit 1 ;; \
esac; \
curl -L "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}.tar.gz" \
-o /tmp/cmake.tar.gz && \
tar -xzf /tmp/cmake.tar.gz -C /usr/local --strip-components=1 && \
rm /tmp/cmake.tar.gz
# Install pre-built static curl with HTTP/3 support
RUN set -ex; \
ARCH=$(uname -m); \
case "$ARCH" in \
x86_64) CURL_ARCH="x86_64" ;; \
aarch64) CURL_ARCH="aarch64" ;; \
*) echo "Unsupported architecture: $ARCH"; exit 1 ;; \
esac; \
CURL_VERSION="8.18.0"; \
curl -L "https://github.com/stunnel/static-curl/releases/download/${CURL_VERSION}/curl-linux-${CURL_ARCH}-glibc-${CURL_VERSION}.tar.xz" \
-o /tmp/curl.tar.xz && \
tar -xf /tmp/curl.tar.xz -C /usr/local/bin && \
rm /tmp/curl.tar.xz && \
chmod +x /usr/local/bin/curl
## Install LLVM
RUN curl -O https://apt.llvm.org/llvm.sh && \
chmod +x llvm.sh && \
./llvm.sh $LLVM_MAJOR_VER && \
rm ./llvm.sh && \
apt install -y libc++-${LLVM_MAJOR_VER}-dev && \
apt install -y libclang-17-dev && \
ln -s libc++abi.so.1 /usr/lib/llvm-$LLVM_MAJOR_VER/lib/libc++abi.so
# Install Rust and Cargo
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${RUST_CHANNEL}
ENV PATH="/root/.cargo/bin:${PATH}"
CMD bash