Docker部署Laravel 9遇Octane命名空间错误,请求解决
Laravel Sail 启动时出现 Octane 命名空间错误的解决办法
问题场景
通过以下命令搭建仅包含MySQL和Redis的Laravel 9新项目:
curl -s "https://laravel.build/example-app??with=mysql,redis" | bash
进入项目并启动Sail后:
cd example-app && ./vendor/bin/sail up
php-fpm容器无法正常运行,报错信息如下:
| 2022-08-04 20:59:27,326 INFO spawned: 'php' with pid 44 |
|---|
| ERROR There are no commands defined in the "octane" namespace. |
example-app-laravel.test-1 |
example-app-laravel.test-1 | 2022-08-04 20:59:28,193 INFO exited: php (exit status 1; not expected)
新项目未安装或配置Octane,composer.json中无相关依赖,且仅启动了当前项目容器,却出现Octane相关错误。
问题原因
核心原因是Docker环境的配置残留或环境变量缓存:
- 之前运行过的Octane项目可能留下了环境变量(如
APP_SERVER=octane),Docker在启动新项目时意外读取了该变量 - Sail的容器启动配置被环境变量影响,错误尝试执行Octane启动命令,而新项目并未安装Octane依赖
解决步骤
1. 彻底清理Docker残留
停止当前项目容器并删除关联卷(彻底清除缓存):
./vendor/bin/sail down -v
可选:清理Docker系统中未使用的镜像、容器等资源:
docker system prune -f
2. 检查并修复项目配置
- 打开项目根目录的
.env文件,查找是否存在APP_SERVER=octane配置,若有则修改为:APP_SERVER=php-fpm - 检查
docker-compose.yml文件,确认laravel.test服务的command配置为默认的start-container,而非Octane启动命令。
3. 重新启动项目
重新安装依赖(确保依赖干净):
./vendor/bin/sail composer install
再次启动容器:
./vendor/bin/sail up
内容的提问来源于stack exchange,提问作者Bogdan Dubyk
相关产品推荐
相关产品推荐

