userver.dockerfile 1.1 KB

1234567891011121314151617181920212223242526272829
  1. FROM ghcr.io/userver-framework/ubuntu-22.04-userver-pg AS builder
  2. RUN apt update && \
  3. apt install -y lsb-release wget software-properties-common gnupg && \
  4. wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh 16
  5. WORKDIR /src
  6. RUN git clone https://github.com/userver-framework/userver.git && \
  7. cd userver && git checkout bdd5e1e03921ff378b062f86a189c3cfa3d66332
  8. COPY userver_benchmark/ ./
  9. RUN mkdir build && cd build && \
  10. cmake -DUSERVER_IS_THE_ROOT_PROJECT=0 -DUSERVER_FEATURE_CRYPTOPP_BLAKE2=0 \
  11. -DUSERVER_FEATURE_UTEST=0 \
  12. -DUSERVER_FEATURE_POSTGRESQL=1 \
  13. -DUSERVER_FEATURE_ERASE_LOG_WITH_LEVEL=warning \
  14. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=native" -DCMAKE_C_FLAGS="-march=native" \
  15. -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_C_COMPILER=clang-16 -DUSERVER_USE_LD=lld-16 \
  16. -DUSERVER_LTO=0 .. && \
  17. make -j $(nproc)
  18. FROM builder AS runner
  19. WORKDIR /app
  20. COPY userver_configs/* ./
  21. COPY --from=builder /src/build/userver_techempower ./
  22. EXPOSE 8080
  23. CMD ./userver_techempower -c ./static_config.yaml