swoole-sync-mysql.dockerfile 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. FROM ubuntu:24.04
  2. ENV SWOOLE_VERSION 5.1.4
  3. ENV ENABLE_COROUTINE 0
  4. ENV CPU_MULTIPLES 1
  5. ENV DATABASE_DRIVER mysql
  6. ARG DEBIAN_FRONTEND=noninteractive
  7. RUN apt update -yqq > /dev/null \
  8. && apt install -yqq software-properties-common > /dev/null \
  9. && LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null \
  10. && apt update -yqq > /dev/null \
  11. && apt install libbrotli-dev php8.3-cli php8.3-pdo-mysql php8.3-dev -y > /dev/null \
  12. && cd /tmp && curl -sSL "https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz" | tar xzf - \
  13. && cd /tmp/swoole-src-${SWOOLE_VERSION} \
  14. && phpize > /dev/null \
  15. && ./configure > /dev/null \
  16. && make -j8 > /dev/null \
  17. && make install > /dev/null \
  18. && echo "extension=swoole.so" > /etc/php/8.3/cli/conf.d/50-swoole.ini \
  19. && echo "memory_limit=1024M" >> /etc/php/8.3/cli/php.ini \
  20. && php -m
  21. WORKDIR /swoole
  22. ADD ./swoole-server.php /swoole
  23. ADD ./database.php /swoole
  24. COPY 10-opcache.ini /etc/php/8.3/cli/conf.d/10-opcache.ini
  25. EXPOSE 8080
  26. CMD php /swoole/swoole-server.php