drogon.dockerfile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. FROM ubuntu:20.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-10 g++-10
  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-10
  18. ENV CXX=g++-10
  19. ENV AR=gcc-ar-10
  20. ENV RANLIB=gcc-ranlib-10
  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 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
  28. RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  29. RUN sudo apt -y update
  30. RUN sudo apt -y install postgresql-server-dev-all
  31. RUN git clone https://github.com/an-tao/drogon
  32. WORKDIR $DROGON_ROOT
  33. RUN git checkout ebf87d69d7bb45dfa478ba364ef9374d9be25092
  34. RUN git submodule update --init
  35. RUN mkdir build
  36. WORKDIR $DROGON_ROOT/build
  37. RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ..
  38. RUN make && make install
  39. WORKDIR $IROOT
  40. RUN git clone https://github.com/microsoft/mimalloc
  41. WORKDIR $MIMALLOC_ROOT
  42. RUN git checkout v1.6.7 -b v1.6.7
  43. RUN mkdir -p out/release
  44. WORKDIR $MIMALLOC_ROOT/out/release
  45. RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ../..
  46. RUN make && make install
  47. WORKDIR $TEST_PATH
  48. RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ..
  49. RUN make
  50. EXPOSE 8080
  51. CMD ./drogon_benchmark config.json