diff --git a/frameworks/PHP/laravel/config/octane.php b/frameworks/PHP/laravel/config/octane.php new file mode 100644 index 00000000000..0d38933a1e9 --- /dev/null +++ b/frameworks/PHP/laravel/config/octane.php @@ -0,0 +1,8 @@ + [ + 'max_requests' => 10000, // Reload workers after requests + ], +]; + diff --git a/frameworks/PHP/laravel/deploy/roadrunner/.rr.yaml b/frameworks/PHP/laravel/deploy/roadrunner/.rr.yaml index bd19a378b20..e1b9eaa98e9 100644 --- a/frameworks/PHP/laravel/deploy/roadrunner/.rr.yaml +++ b/frameworks/PHP/laravel/deploy/roadrunner/.rr.yaml @@ -1,23 +1,35 @@ -# see https://roadrunner.dev/docs/intro-config +# see https://docs.roadrunner.dev/docs/general/config +# https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml + version: "3" -#https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml -server: - command: "php ./vendor/bin/rr-worker start --relay-dsn unix:///usr/local/var/run/rr-rpc.sock" - relay: "unix:///usr/local/var/run/rr-rpc.sock" -logs: - mode: production - level: error http: address: 0.0.0.0:8080 - middleware: ["headers"] pool: - #max_jobs: 64 # feel free to change this + num_workers: 0 + max_jobs: 0 supervisor: exec_ttl: 60s headers: response: Server: "RoadRunner" + middleware: ["headers"] + +server: + command: "php /laravel/vendor/bin/roadrunner-worker" + #command: "php /laravel/vendor/bin/roadrunner-worker start --relay-dsn unix:///usr/local/var/run/rr-rpc.sock" + #relay: "unix:///usr/local/var/run/rr-rpc.sock" + env: + - APP_ENV: production + - APP_BASE_PATH: "/laravel" + - LARAVEL_OCTANE: "1" +rpc: + listen: tcp://127.0.0.1:6001 +logs: + mode: production + level: error + output: stdout + #encoding: json diff --git a/frameworks/PHP/laravel/deploy/roadrunner/composer.json b/frameworks/PHP/laravel/deploy/roadrunner/composer.json deleted file mode 100644 index c3528e5e4e3..00000000000 --- a/frameworks/PHP/laravel/deploy/roadrunner/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "laravel/laravel", - "type": "project", - "description": "The Laravel Framework.", - "keywords": [ - "framework", - "laravel" - ], - "license": "MIT", - "require": { - "laravel/framework": "^9", - "nyholm/psr7": "*", - "spiral/roadrunner": "^2.11", - "spiral/roadrunner-laravel": "^5.9" - }, - "config": { - "optimize-autoloader": true, - "preferred-install": "dist", - "sort-packages": true - }, - "extra": { - "laravel": { - "dont-discover": [] - } - }, - "autoload": { - "psr-4": { - "App\\": "app/" - } - }, - "minimum-stability": "dev", - "prefer-stable": true, - "scripts": { - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi" - ], - "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" - ], - "post-create-project-cmd": [ - "@php artisan key:generate --ansi" - ] - } -} diff --git a/frameworks/PHP/laravel/laravel-roadrunner.dockerfile b/frameworks/PHP/laravel/laravel-roadrunner.dockerfile index 33c7067c7b0..a32aea19107 100644 --- a/frameworks/PHP/laravel/laravel-roadrunner.dockerfile +++ b/frameworks/PHP/laravel/laravel-roadrunner.dockerfile @@ -1,10 +1,10 @@ -FROM php:8.3-cli +FROM php:8.4-cli RUN docker-php-ext-install pdo_mysql pcntl opcache sockets > /dev/null RUN echo "opcache.enable_cli=1" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini -#RUN echo "opcache.jit=1205" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini -#RUN echo "opcache.jit_buffer_size=128M" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini +RUN echo "opcache.jit=1205" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini +RUN echo "opcache.jit_buffer_size=128M" >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini WORKDIR /laravel COPY --link . . @@ -18,21 +18,17 @@ RUN mkdir -p bootstrap/cache \ RUN apt-get update > /dev/null && \ apt-get install -yqq curl unzip > /dev/null -COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer +RUN pecl install protobuf > /dev/null && echo "extension=protobuf.so" > /usr/local/etc/php/conf.d/protobuf.ini -COPY --link deploy/roadrunner/composer.json . -COPY --link deploy/roadrunner/.rr.yaml . +COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer -RUN composer install -a --no-dev --quiet +RUN composer require laravel/octane --update-no-dev --no-scripts --quiet +RUN php artisan octane:install --server="roadrunner" RUN php artisan optimize -# install roadrunner -COPY --from=ghcr.io/roadrunner-server/roadrunner:2023.3 --link /usr/bin/rr /usr/local/bin/rr - -RUN php artisan vendor:publish --provider='Spiral\RoadRunnerLaravel\ServiceProvider' --tag=config -RUN rr -v - EXPOSE 8080 -# CMD bash -CMD rr serve -c .rr.yaml +# https://artisan.page/12.x/ +#ENTRYPOINT ["php", "artisan", "octane:roadrunner", "--host=0.0.0.0", "--port=8080", "--workers=auto", "--max-requests=10000", "--rr-config=/laravel/deploy/roadrunner/.rr.yaml"] +ENTRYPOINT ["/laravel/rr", "serve", "-c", "/laravel/deploy/roadrunner/.rr.yaml"] +