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 正在关闭每个 Sails 命令的旧 Sail 进程
带有 Laravel Sail 和版本控制的 Laravel 8 开发项目