wrk.dockerfile 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. ARG UBUNTU_VERSION=jammy
  2. FROM "buildpack-deps:${UBUNTU_VERSION}" AS compile
  3. ARG WRK_VERSION=4.2.0
  4. ARG LDFLAGS="-flto -march=native -mtune=native -O3"
  5. ARG CFLAGS="-I /usr/include/luajit-2.1 ${LDFLAGS}"
  6. ARG DEBIAN_FRONTEND=noninteractive
  7. WORKDIR /tmp
  8. RUN apt-get -yqq update && \
  9. apt-get -yqq install \
  10. libluajit-5.1-dev \
  11. libssl-dev \
  12. luajit && \
  13. curl -LSs "https://github.com/wg/wrk/archive/${WRK_VERSION}.tar.gz" | \
  14. tar --strip-components=1 -xz && \
  15. make WITH_LUAJIT=/usr WITH_OPENSSL=/usr -j "$(nproc)"
  16. FROM "ubuntu:${UBUNTU_VERSION}"
  17. # Required scripts for benchmarking
  18. COPY concurrency.sh pipeline.lua pipeline.sh query.sh ./
  19. ARG DEBIAN_FRONTEND=noninteractive
  20. COPY --from=compile /tmp/wrk /usr/local/bin/
  21. RUN apt-get -yqq update && \
  22. apt-get -yqq install \
  23. curl \
  24. libluajit-5.1-2 && \
  25. chmod 777 concurrency.sh pipeline.sh query.sh
  26. # Environment vars required by the wrk scripts with nonsense defaults
  27. ENV accept=accept \
  28. duration=duration \
  29. levels=levels \
  30. max_concurrency=max_concurrency \
  31. max_threads=max_threads \
  32. name=name \
  33. pipeline=pipeline \
  34. server_host=server_host