Как настроить работу roadrunner для laravel
Всем привет. Поднимаю свой проект на rr. Столкнулся с проблемой запуска в контейнере. Я не очень понимаю, как это работает, в rr.yaml в server должна быть команда которая запсукает воркеры, но в dockerfile должна быть команда, которая запускает приложение. Хотя я запускаю просто сервак через octane start и всё.
Может кто показать как вы запускаете проекты на rr?
Надо ли писать свой воркер?
Если надо, то почему я просто в консоли делаю octane:start и всё запускается
Что на данный момент есть на руках
Dockerfile
# Этап 1: Получение RoadRunner
FROM ghcr.io/roadrunner-server/roadrunner:2024.1 AS roadrunner
# Этап 2: Сборка PHP
FROM php:8.3-cli-alpine3.20 AS php-builder
# Установка системных зависимостей и расширений PHP
RUN apk add --no-cache \
libpng-dev \
libzip-dev \
libpq-dev \
libxml2-dev \
oniguruma-dev \
icu-dev \
zip \
unzip \
git \
bash \
curl \
autoconf \
g++ \
make \
&& docker-php-ext-install bcmath gd zip opcache pdo_pgsql pcntl intl mbstring xml \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& rm -rf /var/cache/apk/*
# Копирование бинарного файла RoadRunner с первого этапа
COPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr
# Настройка PHP конфигурации
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
# Установка Composer
ENV COMPOSER_ALLOW_SUPERUSER=1
RUN curl -sS https://getcomposer.org/installer | php -- \
--filename=composer \
--install-dir=/usr/local/bin
# Установка рабочей директории
WORKDIR /var/www
# Копирование конфигурации RoadRunner и стартового скрипта
COPY --link .rr.yaml /var/www/.rr.yaml
# Открытие порта приложения
EXPOSE 8000
# Определение команды для запуска приложения
CMD ["rr", "serve", "-d", "-c", "/var/www/.rr.yaml"]
rr.yaml
version: '3'
rpc:
enable: true
listen: tcp://127.0.0.1:6001
server:
command: "php artisan octane:start"
relay: "pipes"
http:
address: 0.0.0.0:8000
middleware: ["static", "gzip"]
static:
dir: "public"
logs:
mode: development
level: debug
file_logger_options:
log_output: "storage/logs/rr.log"
max_size: 10
max_age: 24
max_backups: 10
compress: true