You need to enable JavaScript to run this app. 使用Docker安装运行Laravel Octane RoadRunner的部署问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker安装运行Laravel Octane RoadRunner的部署问题咨询

问题描述

我计划使用Docker安装并运行Laravel Octane RoadRunner,目前构建Docker容器所需的前置环境已全部配置完成,包含Docker Desktop、WSL 2运行环境、PHP 8。
我所使用的Dockerfile如下:
Dockerfile截图
使用的docker-compose.yml配置文件如下:
docker-compose.yml截图
当前Docker Desktop返回的错误日志如下:
Docker报错日志截图
烦请协助排查部署过程中出现的问题。


问题排查方案
  • 确认RoadRunner二进制文件已正确安装
    Laravel Octane的RoadRunner驱动需要rr可执行文件存在于系统PATH或项目根目录下,缺失该文件是最常见的启动失败原因。你可以在Dockerfile中通过项目依赖直接安装官方二进制:
# 安装RoadRunner CLI后拉取对应架构的rr二进制
RUN composer require spiral/roadrunner-cli --dev \
    && ./vendor/bin/rr get --no-interaction --location /usr/local/bin \
    && chmod +x /usr/local/bin/rr
  • 校验Octane驱动配置
    检查项目.env文件是否显式配置OCTANE_SERVER=roadrunner,未指定时Octane会默认尝试加载Swoole驱动,会抛出Swoole扩展不存在的报错。你也可以在启动命令中强制指定驱动,规避环境配置影响。
  • 修正容器启动参数
    确保docker-compose.yml中的启动命令符合Octane运行要求,参考配置如下:
command: php artisan octane:start --server=roadrunner --host=0.0.0.0 --port=8000

注意host必须设置为0.0.0.0才能允许容器外部访问服务,端口需要和docker-compose中暴露的端口保持一致。

  • 检查PHP扩展依赖
    确认Dockerfile中已经安装Octane运行必需的扩展:pcntl、posix、curl、mbstring、xml、zip,其中pcntl和posix是进程管理核心依赖,缺失会直接导致启动失败。
  • 调整目录权限配置
    确保容器内运行Octane的用户对项目目录有读写权限,不要直接使用root用户运行服务,避免出现日志写入、缓存生成失败的问题。可以在Dockerfile中增加如下权限配置:
RUN chown -R www-data:www-data /var/www/html \
    && chmod -R 755 /var/www/html
USER www-data

内容的提问来源于stack exchange,提问作者mofiroz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 19:15:03