reactphp.dockerfile 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. FROM ubuntu:24.04
  2. ARG DEBIAN_FRONTEND=noninteractive
  3. RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
  4. RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
  5. RUN apt-get update -yqq > /dev/null && \
  6. apt-get install -yqq git unzip wget curl build-essential \
  7. php8.4-cli php8.4-mbstring php8.4-dev php8.4-xml > /dev/null
  8. # An extension is required!
  9. # We deal with concurrencies over 1k, which stream_select doesn't support.
  10. # libuv
  11. # RUN apt-get install -yqq libuv1-dev > /dev/null \
  12. # && pecl install uv-beta > /dev/null \
  13. # && echo "extension=uv.so" > /etc/php/8.4/cli/conf.d/uv.ini
  14. # libevent
  15. RUN apt-get install -y libevent-dev > /dev/null \
  16. && pecl install event-3.1.4 > /dev/null \
  17. && echo "extension=event.so" > /etc/php/8.4/cli/conf.d/event.ini
  18. COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
  19. COPY --link deploy/conf/* /etc/php/8.4/cli/conf.d/
  20. WORKDIR /reactphp
  21. COPY --link . .
  22. RUN composer install --prefer-dist --optimize-autoloader --no-dev
  23. EXPOSE 8080
  24. ENTRYPOINT ["/usr/bin/php"]
  25. CMD ["server.php"]