h2o_mruby.dockerfile 936 B

12345678910111213141516171819202122232425262728293031
  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. RUN apt-get -yqq update && apt-get -yqq install cmake ninja-build
  7. WORKDIR h2o-build
  8. ARG H2O_ARCHIVE="${H2O_VERSION}.tar.gz"
  9. ADD "https://github.com/h2o/h2o/archive/${H2O_ARCHIVE}" ./
  10. RUN tar --strip-components=1 -xf "${H2O_ARCHIVE}"
  11. ARG H2O_PREFIX
  12. WORKDIR build
  13. RUN cmake -G Ninja -DCMAKE_C_FLAGS="-flto -march=native -mtune=native" -DWITH_MRUBY=on \
  14. -DCMAKE_AR=/usr/bin/gcc-ar -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \
  15. -DCMAKE_INSTALL_PREFIX="${H2O_PREFIX}" .. && \
  16. cmake --build . -j && \
  17. cmake --install .
  18. WORKDIR /
  19. FROM ruby:${RUBY_IMAGE_VERSION}-slim
  20. ARG H2O_PREFIX
  21. ADD ./h2o.conf "${H2O_PREFIX}/"
  22. COPY --from=compile "${H2O_PREFIX}" "${H2O_PREFIX}/"
  23. EXPOSE 8080
  24. CMD ["/opt/h2o/bin/h2o", "-c", "/opt/h2o/h2o.conf"]