swoole-async-mysql.dockerfile 1008 B

12345678910111213141516171819202122232425262728293031
  1. FROM ubuntu:24.04
  2. ENV ENABLE_COROUTINE 1
  3. ENV CPU_MULTIPLES 1
  4. ENV DATABASE_DRIVER mysql
  5. ARG DEBIAN_FRONTEND=noninteractive
  6. RUN apt update -yqq > /dev/null \
  7. && apt install -yqq software-properties-common > /dev/null \
  8. && LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null \
  9. && apt update -yqq > /dev/null \
  10. && apt install git libbrotli-dev php8.4-cli php8.4-pdo-mysql php8.4-dev -y > /dev/null \
  11. && cd /tmp && git clone https://github.com/swoole/swoole-src.git \
  12. && cd /tmp/swoole-src/ && git checkout feat_llhttp \
  13. && phpize > /dev/null \
  14. && ./configure > /dev/null \
  15. && make -j "$(nproc)" > /dev/null \
  16. && make install > /dev/null \
  17. && echo "extension=swoole.so" > /etc/php/8.4/cli/conf.d/50-swoole.ini \
  18. && echo "memory_limit=1024M" >> /etc/php/8.4/cli/php.ini
  19. WORKDIR /swoole
  20. ADD ./swoole-server.php /swoole
  21. ADD ./database.php /swoole
  22. COPY 10-opcache.ini /etc/php/8.4/cli/conf.d/10-opcache.ini
  23. EXPOSE 8080
  24. CMD php /swoole/swoole-server.php