php-h2o.dockerfile 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. FROM ubuntu:19.10
  2. COPY ./ ./
  3. RUN apt-get update > /dev/null && \
  4. apt-get install -yqq autoconf bison cmake curl file flex g++ git libnuma-dev libpq-dev libssl-dev \
  5. libtool libyajl-dev libz-dev make wget software-properties-common > /dev/null
  6. ### Install php
  7. ENV DEBIAN_FRONTEND noninteractive
  8. RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
  9. RUN apt-get update -yqq > /dev/null && \
  10. apt-get install -yqq php7.4 php7.4-common php7.4-cli php7.4-fpm php7.4-mysql > /dev/null
  11. COPY deploy/conf/* /etc/php/7.4/fpm/
  12. RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/7.4/fpm/php-fpm.conf ; fi;
  13. ### Install h2o
  14. ENV H2O_VERSION=2.2.6
  15. ENV H2O_ARCHIVE="v${H2O_VERSION}.tar.gz"
  16. ENV H2O_HOME=/h2o
  17. RUN wget -qO "$H2O_ARCHIVE" "https://github.com/h2o/h2o/archive/$H2O_ARCHIVE" && \
  18. tar xf "$H2O_ARCHIVE" && \
  19. cd "h2o-$H2O_VERSION" && \
  20. cmake -DCMAKE_INSTALL_PREFIX="$H2O_HOME" -DCMAKE_C_FLAGS="-flto -march=native" \
  21. -DCMAKE_AR=/usr/bin/gcc-ar -DCMAKE_RANLIB=/usr/bin/gcc-ranlib -DWITH_MRUBY=off . && \
  22. make -j "$(nproc)" install > /dev/null
  23. CMD export WORKERS=$(( 2 * $(nproc) )) && \
  24. sed -i "s/num-threads: x/num-threads: $WORKERS/g" /deploy/h2o.conf && \
  25. service php7.4-fpm start && \
  26. /h2o/bin/h2o -c /deploy/h2o.conf