Laravel Sail 正在关闭每个 Sails 命令的旧 Sail 进程
Posted
技术标签:
【中文标题】Laravel Sail 正在关闭每个 Sails 命令的旧 Sail 进程【英文标题】:Laravel Sail is shutting down old Sail processes on every sail command 【发布时间】:2021-06-12 00:33:48 【问题描述】:我刚开始使用 Laravel Sail (v1.4.7),如果我运行这个:
sail up -d
然后所有容器都启动了。
然后我尝试运行这个:
sail composer dump-autoload
响应是:
projectname- docker- Exit 1
Shutting down old Sail processes...
Sail is not running.
You may Sail using the following commands: './vendor/bin/sail up' or './vendor/bin/sail up -d'
我尝试在没有帆的情况下运行composer dump-autoload
,它运行良好。但这不是在容器内运行的(所以将来可能会在不同的版本上运行)。
更新:
我在 WSL2、Ubuntu 20.04 中运行我的容器。
为什么此时要关闭容器?但实际上不只是这个命令发生关闭。每个sail ...
命令的出现都是一样的。
有什么想法吗?
【问题讨论】:
在运行sail up -d
之后,您能否查看docker-compose ps
是否包含任何退出的服务?就我而言,Meilisearch 没有正确启动,因为 ARM 上的 Docker 存在问题。 Sail 会检查任何已退出的服务,如果发现任何服务则停止。在 docker-compose.yml 中禁用 Meilisearch 会暂时修复该问题,直到发布修复程序。
我做了docker-compose ps
,我看到我的mysql服务有Exit 1
状态。我该怎么做才能修复它?我使用默认的docker-compose.yaml
文件
在我的情况下,mysql 容器没有启动,因为我使用的是 DB_USER=root 并且它会抱怨。至少在macos上。在 linux 上,我认为不会。记得查看sail up
logs
就在一年前,被称为 root 的 sql 用户对我来说还不错,但今天从 root 更改它已经解决了这个问题
【参考方案1】:
如果项目根目录中的docker-compose.yml
文件中的任何 个容器由于任何原因无法正常启动,那么 Laravel Sail 将执行此操作。解决方案是确保所有容器都启动。容器未启动的原因将是一个单独的问题,因为发生这种情况的原因有很多。
尝试在docker-composer.yml
中注释掉失败容器的服务,以确认这是问题所在。
【讨论】:
【参考方案2】:就像评论中建议的@mwm一样,它可以与数据库的用户名相关。
我刚刚遇到了同样的问题,它与用户名有关。在我将用户名 root 更改为其他名称后,它开始正常工作。
【讨论】:
以上是关于Laravel Sail 正在关闭每个 Sails 命令的旧 Sail 进程的主要内容,如果未能解决你的问题,请参考以下文章
带有 Laravel Sail 和版本控制的 Laravel 8 开发项目
无法在 .env 上为 Laravel Sail 设置 APP_PORT