Laravel项目执行./vendor/bin/sail up报unknown shorthand flag: 'q'错误如何解决
错误根因
unknown shorthand flag: 'q' in -q错误由Laravel Sail与本地Docker Compose版本语法不兼容导致,报错涉及的-q参数是Sail脚本内部自动拼接生成,和你手动执行命令时是否添加-q参数无关。
解决步骤
可按优先级依次尝试以下操作:
- 升级Laravel Sail到兼容版本
在项目根目录执行命令升级Sail:
composer require laravel/sail --dev
升级完成后重新执行启动命令测试:
./vendor/bin/sail up
- 指定Docker Compose二进制调用路径
如果升级Sail后问题仍存在,说明本地安装的是Docker Compose V1版本(仅支持docker-compose带横杠的命令),在项目根目录.env文件中新增如下配置:
COMPOSE_BINARY=docker-compose
保存配置后重新执行启动命令即可。
- 重新构建Sail镜像
上述操作都无效的情况下,先执行命令清理旧构建缓存,重新构建镜像:
./vendor/bin/sail build --no-cache
构建完成后再次执行启动命令即可。
- 适配Docker Compose版本升级
也可以选择安装Docker Compose V2插件,适配最新版Sail的默认调用逻辑。
内容的提问来源于stack exchange,提问作者LololoTheGreat
相关产品推荐
相关产品推荐

