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

Laravel框架
442
0
0
2022-04-19

使用 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 命令无法与容器交互的原因与解决办法
生效了。
至此,问题得以解决。