lwan.dockerfile 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. FROM ubuntu:19.10
  2. RUN apt-get update -yqq && \
  3. apt-get install -yqq \
  4. git pkg-config build-essential cmake zlib1g-dev \
  5. libsqlite3-dev libmariadbclient-dev wget
  6. ADD ./ /lwan
  7. WORKDIR /lwan
  8. RUN mkdir mimalloc && \
  9. wget https://github.com/microsoft/mimalloc/archive/6e1ca96a4965c776c10698c24dae576523178ef5.tar.gz -O - | tar xz --strip-components=1 -C mimalloc && \
  10. cd mimalloc && mkdir build && cd build && \
  11. CFLAGS="-flto -ffat-lto-objects" cmake .. -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=OFF && make -j install
  12. RUN mkdir luajit && \
  13. wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz -O - | tar xz --strip-components=1 -C luajit && \
  14. cd luajit && \
  15. PREFIX=/usr CFLAGS="-O3 -mtune=native -march=native -flto -ffat-lto-objects" make -j install
  16. RUN wget https://github.com/lpereira/lwan/archive/a75278f067189fc93ea41b25e5ec46f5eb95b217.tar.gz -O - | tar xz --strip-components=1 && \
  17. mkdir build && cd build && \
  18. cmake /lwan -DCMAKE_BUILD_TYPE=Release -DUSE_ALTERNATIVE_MALLOC=mimalloc && \
  19. make lwan-static
  20. RUN make clean && make
  21. ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
  22. ENV USE_MYSQL=1
  23. ENV MYSQL_USER=benchmarkdbuser
  24. ENV MYSQL_PASS=benchmarkdbpass
  25. ENV MYSQL_DB=hello_world
  26. ENV MYSQL_HOST=tfb-database
  27. ENV LD_PRELOAD=/usr/local/lib/mimalloc-1.6/libmimalloc.so
  28. CMD ["./techempower"]