使用 sail 执行 artisan 等命令无响应

使用 sail 执行 artisan 等命令无响应#

问题描述#

最近在使用 Laravel Sail 做开发环境时, 发现 sail 命令无法与容器交互,在执行入 sail php -v,sail artisan migrate 这类命令时,命令行没有任何输出,也没有任何执行效果。

问题原因#

执行 php artisan sail:install 命令发布 docker-compose.yml 文件前,没有在.env 文件内配置 APP_SERVICE 环境变量来自定义服务名称,而是直接修改 docker-compose.yml 文件定义:
使用 Laravel Sail 开发环境时,sail 命令无法与容器交互的原因与解决办法
导致执行 sail 命令时,由于没有检测到 APP_SERVICE 环境变量,取得的服务名称为默认的 laravel.test,而不是 custom_example.test

解决办法#

.env 文件内配置 APP-SERVICE 项,使之与 docker-compose.yml 文件中的服务名称一致:

使用 Laravel Sail 开发环境时,sail 命令无法与容器交互的原因与解决办法
接下来执行 sail 命令与容器交互,看看是否生效:

sail php -v

执行结果:
使用 Laravel Sail 开发环境时,sail 命令无法与容器交互的原因与解决办法
很明显生效了。

再试试:

sail tinker

执行结果:

使用 Laravel Sail 开发环境时,sail 命令无法与容器交互的原因与解决办法
生效了。
至此,问题得以解决。

本作品采用《CC 协议》,转载必须注明作者和本文链接
顺势而为
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。