使用 sail 执行 artisan 等命令无响应
问题描述
最近在使用 Laravel Sail 做开发环境时, 发现 sail 命令无法与容器交互,在执行入sail php -v
,sail artisan migrate
这类命令时,命令行没有任何输出,也没有任何执行效果。
问题原因
执行php artisan sail:install
命令发布docker-compose.yml
文件前,没有在.env
文件内配置APP_SERVICE
环境变量来自定义服务名称,而是直接修改docker-compose.yml
文件定义:
导致执行sail
命令时,由于没有检测到APP_SERVICE
环境变量,取得的服务名称为默认的laravel.test
,而不是custom_example.test
。
解决办法
在.env
文件内配置APP-SERVICE
项,使之与docker-compose.yml
文件中的服务名称一致:
接下来执行sail
命令与容器交互,看看是否生效:
sail php -v
执行结果:
很明显生效了。
再试试:
sail tinker
执行结果:
生效了。
至此,问题得以解决。