h2o_mruby.dockerfile 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. ARG RUBY_IMAGE_VERSION=3.2
  2. ARG H2O_PREFIX=/opt/h2o
  3. FROM "ruby:${RUBY_IMAGE_VERSION}" AS compile
  4. ARG H2O_VERSION=9ab3feb4d7429ddda52a3cf84bd6da0e890bd52a
  5. ARG DEBIAN_FRONTEND=noninteractive
  6. ARG H2O_PREFIX
  7. WORKDIR /tmp/h2o-build
  8. RUN apt-get -yqq update && \
  9. apt-get -yqq install \
  10. cmake \
  11. ninja-build && \
  12. curl -LSs "https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz" | \
  13. tar --strip-components=1 -xz && \
  14. cmake \
  15. -B build \
  16. -DCMAKE_AR=/usr/bin/gcc-ar \
  17. -DCMAKE_C_FLAGS="-flto -march=native -mtune=native" \
  18. -DCMAKE_INSTALL_PREFIX="${H2O_PREFIX}" \
  19. -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \
  20. -DWITH_MRUBY=on \
  21. -G Ninja \
  22. -S . && \
  23. cmake --build build -j && \
  24. cmake --install build
  25. FROM ruby:${RUBY_IMAGE_VERSION}-slim
  26. ARG H2O_PREFIX
  27. COPY --from=compile "${H2O_PREFIX}" "${H2O_PREFIX}/"
  28. COPY h2o.conf "${H2O_PREFIX}/"
  29. EXPOSE 8080
  30. ARG BENCHMARK_ENV
  31. ARG TFB_TEST_DATABASE
  32. ARG TFB_TEST_NAME
  33. CMD ["/opt/h2o/bin/h2o", "-c", "/opt/h2o/h2o.conf"]