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

Laravel Sail is not working properly in Ubuntu 20.04 LTS

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

之后,我使用LaravelSail成功安装了Laravel。那我运行

./vendor/bin/sail up -d

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

Sail is not running.

You may Sail using the following commands: './sail up' or './sail up -d'

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

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

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

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

运行 sail up 启动进程,然后使用 docker-compose ps 检查所有服务 运行 和 none 具有 Exit状态。

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

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

之后

如果您使用 Windows 并使用 WSL,请确保正确设置 WSL 集成: 设置->资源->WSL 集成 + 切换 Linux 版本