workerman-mysql-swoole-jit.dockerfile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. FROM ubuntu:24.04
  2. ENV TEST_TYPE mysql-swoole
  3. ENV SWOOLE_VERSION 5.1.5
  4. ENV PROCESS_MULTIPLIER 1
  5. ENV POOL_SIZE 4
  6. ENV EVENT_LOOP Swoole
  7. ARG DEBIAN_FRONTEND=noninteractive
  8. RUN apt update -yqq > /dev/null \
  9. && apt install -yqq software-properties-common > /dev/null \
  10. && LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null \
  11. && apt update -yqq > /dev/null \
  12. && apt install libbrotli-dev php8.3-cli php8.3-pdo-mysql php8.3-dev php8.3-mbstring git -y > /dev/null \
  13. && cd /tmp && curl -sSL "https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz" | tar xzf - \
  14. && cd /tmp/swoole-src-${SWOOLE_VERSION} \
  15. && phpize > /dev/null \
  16. && ./configure > /dev/null \
  17. && make -j "$(nproc)" > /dev/null \
  18. && make install > /dev/null \
  19. && echo "extension=swoole.so" > /etc/php/8.3/cli/conf.d/50-swoole.ini \
  20. && echo "memory_limit=1024M" >> /etc/php/8.3/cli/php.ini
  21. COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
  22. WORKDIR /workerman
  23. COPY --link . .
  24. RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
  25. COPY php-jit.ini /etc/php/8.3/cli/conf.d/10-opcache.ini
  26. EXPOSE 8080
  27. CMD php /workerman/server.php start