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 中禁用 Meil​​isearch 会暂时修复该问题,直到发布修复程序。 我做了docker-compose ps,我看到我的mysql服务有Exit 1状态。我该怎么做才能修复它?我使用默认的docker-compose.yaml 文件 在我的情况下,mysql 容器没有启动,因为我使用的是 DB_USER=root 并且它会抱怨。至少在macos上。在 linux 上,我认为不会。记得查看sail uplogs 就在一年前,被称为 root 的 sql 用户对我来说还不错,但今天从 root 更改它已经解决了这个问题 【参考方案1】:

如果项目根目录中的docker-compose.yml 文件中的任何 个容器由于任何原因无法正常启动,那么 Laravel Sail 将执行此操作。解决方案是确保所有容器都启动。容器未启动的原因将是一个单独的问题,因为发生这种情况的原因有很多。

尝试在docker-composer.yml 中注释掉失败容器的服务,以确认这是问题所在。

【讨论】:

【参考方案2】:

就像评论中建议的@mwm一样,它可以与数据库的用户名相关。

我刚刚遇到了同样的问题,它与用户名有关。在我将用户名 root 更改为其他名称后,它开始正常工作。

【讨论】:

以上是关于Laravel Sail 正在关闭每个 Sails 命令的旧 Sail 进程的主要内容,如果未能解决你的问题,请参考以下文章

带有 Laravel Sail 和版本控制的 Laravel 8 开发项目

在 Laravel 上使用 Sail 时没有匹配的清单错误

将 Sails Js 与 Angular 2 集成

无法在 .env 上为 Laravel Sail 设置 APP_PORT

Laravel Sail 不会在 Ubuntu 20.04 上构建 - groupadd:无效的组 ID 'sail'

如何使用 Sail.js 和 MySQL 实现全文搜索?