drogon.dockerfile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. FROM ubuntu:18.04
  2. COPY ./ ./
  3. RUN apt-get update -yqq && \
  4. apt-get install -yqq software-properties-common && \
  5. apt-get install -yqq sudo curl wget cmake locales git \
  6. openssl libssl-dev \
  7. libjsoncpp-dev \
  8. uuid-dev libreadline-dev libbison-dev flex \
  9. zlib1g-dev && \
  10. add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
  11. apt-get update -yqq && \
  12. apt-get install -yqq gcc-8 g++-8
  13. RUN locale-gen en_US.UTF-8
  14. ENV LANG en_US.UTF-8
  15. ENV LANGUAGE en_US:en
  16. ENV LC_ALL en_US.UTF-8
  17. ENV CC=gcc-8
  18. ENV CXX=g++-8
  19. ENV AR=gcc-ar-8
  20. ENV RANLIB=gcc-ranlib-8
  21. ENV IROOT=/install
  22. ENV DROGON_ROOT=$IROOT/drogon
  23. ENV MIMALLOC_ROOT=$IROOT/mimalloc
  24. ENV PG_ROOT=$IROOT/postgres-batch_mode_ubuntu
  25. ENV TEST_PATH=/drogon_benchmark/build
  26. WORKDIR $IROOT
  27. RUN wget https://github.com/an-tao/postgres/archive/batch_mode_ubuntu.tar.gz
  28. RUN tar -xvzf batch_mode_ubuntu.tar.gz
  29. WORKDIR $PG_ROOT
  30. RUN ./configure --prefix=/usr CFLAGS='-O2 -pipe'
  31. RUN make && make install
  32. WORKDIR $IROOT
  33. RUN git clone https://github.com/an-tao/drogon
  34. WORKDIR $DROGON_ROOT
  35. RUN git checkout fb17efe765d162be01680b05a3a387c7a182a4c5
  36. RUN git submodule update --init
  37. RUN mkdir build
  38. WORKDIR $DROGON_ROOT/build
  39. RUN cmake -DCMAKE_BUILD_TYPE=release ..
  40. RUN make && make install
  41. WORKDIR $IROOT
  42. RUN git clone https://github.com/microsoft/mimalloc
  43. WORKDIR $MIMALLOC_ROOT
  44. RUN git checkout v1.6.7 -b v1.6.7
  45. RUN mkdir -p out/release
  46. WORKDIR $MIMALLOC_ROOT/out/release
  47. RUN cmake ../..
  48. RUN make && make install
  49. WORKDIR $TEST_PATH
  50. RUN cmake -DCMAKE_BUILD_TYPE=release ..
  51. RUN make
  52. EXPOSE 8080
  53. CMD ./drogon_benchmark config.json