h2o_mruby.dockerfile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. ARG UBUNTU_VERSION=22.04
  2. ARG H2O_PREFIX=/opt/h2o
  3. FROM "ubuntu:${UBUNTU_VERSION}" AS compile
  4. ARG H2O_VERSION=18b175f71ede08b50d3e5ae8303dacef3ea510fc
  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. curl \
  12. g++ \
  13. libbpfcc-dev \
  14. libbrotli-dev \
  15. libcap-dev \
  16. libssl-dev \
  17. libtool \
  18. libuv1-dev \
  19. libwslay-dev \
  20. libz-dev \
  21. ninja-build \
  22. pkg-config \
  23. rsync \
  24. ruby \
  25. systemtap-sdt-dev && \
  26. curl -LSs "https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz" | \
  27. tar --strip-components=1 -xz && \
  28. cmake \
  29. -B build \
  30. -DCMAKE_AR=/usr/bin/gcc-ar \
  31. -DCMAKE_C_FLAGS="-flto -march=native -mtune=native" \
  32. -DCMAKE_INSTALL_PREFIX="${H2O_PREFIX}" \
  33. -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \
  34. -DWITH_MRUBY=on \
  35. -G Ninja \
  36. -S . && \
  37. cmake --build build -j && \
  38. cmake --install build
  39. FROM "ubuntu:${UBUNTU_VERSION}"
  40. ARG H2O_PREFIX
  41. COPY --from=compile "${H2O_PREFIX}/bin/h2o" "${H2O_PREFIX}/bin/"
  42. COPY --from=compile "${H2O_PREFIX}/share" "${H2O_PREFIX}/share/"
  43. COPY h2o.conf "${H2O_PREFIX}/etc/"
  44. EXPOSE 8080
  45. ARG BENCHMARK_ENV
  46. ARG TFB_TEST_DATABASE
  47. ARG TFB_TEST_NAME
  48. CMD ["/opt/h2o/bin/h2o", "-c", "/opt/h2o/etc/h2o.conf"]