Laravel Sail 在 Ubuntu 20.04 LTS 中无法正常工作

Posted

技术标签:

【中文标题】Laravel Sail 在 Ubuntu 20.04 LTS 中无法正常工作【英文标题】:Laravel Sail is not working properly in Ubuntu 20.04 LTS 【发布时间】:2021-04-04 15:29:43 【问题描述】:

您好,我尝试使用安装新的 Laravel 项目 Laravel 帆 码头环境。首先它向我显示“Docker 未运行”错误。然后我发现,我需要以无根身份启动 docker。我解决了它,阅读这个网址:[https://docs.docker.com/engine/install/linux-postinstall/]。

之后,我使用 Laravel Sail 成功安装了 Laravel。然后我跑了

./vendor/bin/sail up -d

我可以在浏览器中查看 Laravel 项目。但是当我运行任何其他工匠命令(例如./vendor/bin/sail artisan route:list 或作为sail shell 的航行命令时,所有 docker 容器都被强制关闭。它显示了这个错误。

Sail 没有运行。

您可以使用以下命令航行:'./sail up' 或 './sail up -d'

有什么建议吗?我在 Ubuntu 20.04 LTS 版本上遇到了这个问题。

【问题讨论】:

运行命令 ./vendor/bin/sail up 不带“-d”并显示出现的内容。 您是如何创建容器的?你在使用 docker-compose 吗?您的容器中可能发生了错误,并且它们没有被创建。因此,由于您没有运行容器,sail shell 也不起作用。 @SantiagoCurvello 我可以在浏览器中查看 laravel 项目。但是当我运行一些命令时,例如 ./vendor/bin/sail artisan route:list,所有容器都会自动关闭。我不知道为什么。 @MertMetin 我正在使用第一方包 Laravel Sail (laravel.com/docs/8.x/sail) 来设置我的开发环境。当我扬帆起航时,我所有的容器都运行正常。我还可以从浏览器查看我的 laravel 项目。但是当我运行任何其他命令(例如“sail shell”或“sail artisan route:list”)时,我所有正在运行的容器都会被一一关闭。 【参考方案1】:

在安装 Laravel Sail 之前,我使用的是 Laradock。也许有一些冲突。所以我备份了我所有的数据库,然后我使用这段代码删除了所有容器。 sudo docker rmi -f $(docker images -a -q)。然后安装了新的 Laravel 项目并且它工作了。

请阅读我的以下评论,因为这对我来说是一个更好的解决方案。

【讨论】:

运行这些命令也可以解决这个问题。 1.运行docker-compose down --volumes 2.运行sail up --build【参考方案2】:

Sail 首先检查是否有任何当前的docker-compose 进程的状态为Exit。如果其中任何一个有,那么它将强制关闭所有其他服务。这就是您在输入任何sail 子命令时看到的内容。你可以在这里看到代码:https://github.com/laravel/sail/blob/87c63c2956749f66e43467d4a730b917ef7428b7/bin/sail#L44-L49

运行sail up 启动进程,然后使用docker-compose ps 检查所有服务是否正在运行,并且没有Exit 状态。

我遇到了同样的问题,在查看代码和检查我的服务时,我注意到数据库在我打开它们后不久就退出了。

【讨论】:

【参考方案3】:

很简单,可能你没有运行docker的权限。 在 Linux 中首先使用sudo -s,然后使用./vendor/bin/sail up -d

【讨论】:

以上是关于Laravel Sail 在 Ubuntu 20.04 LTS 中无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Laravel Sail 正在关闭每个 Sails 命令的旧 Sail 进程

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

laravel、sail shell 和sails artisan 命令停止工作

Laravel Sail 如何更改本地开发域