laravel-roadrunner.dockerfile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. FROM php:8.5-cli
  2. ARG DEBIAN_FRONTEND=noninteractive
  3. RUN apt-get update -yqq && \
  4. apt-get install -yqq libpq-dev libicu-dev > /dev/null && \
  5. docker-php-ext-install intl pdo_mysql pcntl sockets > /dev/null
  6. RUN echo "opcache.enable_cli=1" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
  7. RUN echo "opcache.jit=1205" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
  8. RUN echo "opcache.jit_buffer_size=128M" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
  9. WORKDIR /laravel
  10. COPY --link . .
  11. RUN mkdir -p bootstrap/cache \
  12. storage/logs \
  13. storage/framework/sessions \
  14. storage/framework/views \
  15. storage/framework/cache
  16. RUN apt-get update > /dev/null && \
  17. apt-get install -yqq curl unzip > /dev/null
  18. RUN pecl install protobuf > /dev/null && echo "extension=protobuf.so" > /usr/local/etc/php/conf.d/protobuf.ini
  19. COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
  20. RUN composer require laravel/octane --update-no-dev --no-scripts --quiet
  21. RUN php artisan octane:install --server="roadrunner" > /dev/null
  22. RUN php artisan optimize
  23. RUN export WORKERS=$((1*$(nproc)))
  24. RUN if [ $(nproc) > 2 ]; then export WORKERS=$((1*$(nproc) -1)) ; fi;
  25. EXPOSE 8080
  26. # https://artisan.page/12.x/
  27. #ENTRYPOINT ["php", "artisan", "octane:roadrunner", "--host=0.0.0.0", "--port=8080", "--workers=auto", "--max-requests=10000", "--rr-config=/laravel/deploy/roadrunner/.rr.yaml"]
  28. ENTRYPOINT ["/laravel/rr", "serve", "-c", "/laravel/deploy/roadrunner/.rr.yaml"]