昨天看到 Laravel 新出来一个工具 Laravel Sail ,简而言之就是 Laravel 自己出的 基于 Docker 的本地开发环境。
支持 macOS, Linux, and Windows (via WSL2)。
我现在手头上只有 Windows ,所以我们先用 Windows 来体验一下,因我机器已经装了 WSL 和 Docker,所以省略了这些安装过程。
接下来我说一下我趟过得坑,可能只适用于我的环境,你的环境有可能会一路顺风。
最开始我以为要在 WSL 中安装 Docker ,然后我突然发现,WSL
和 docker-for-windows
他们之间可以互通。所以不需要再 WSL 中安装 Docker。只需要简单的配置一下即可。
First
将 container 设置为“Linux container”,找到你的 Docker
图标 右击然后选择 Linux container,如果已经显示为"Switch to Windows containers",这说明已经在使用Linux container。否则,会显示为“Switch to Linux containers”。
Second
打开 Docker 的 Settings 的 General 勾选 Expose daemon on tcp://localhost:2375 without TLS
和 Use the WSL 2 based engine
ok,接下来我们进到 wsl 中试一下,打卡一个目录 cmd 输入 wsl 会自动进入到 wsl 环境中,我们看下是否 可以在 wsl 中使用 docker ,
发现貌似还是不能用,似乎是不支持 wsl1,
代码语言:javascript复制The command 'docker' could not be found in this WSL 1 distro.
We recommend to convert this distro to WSL 2 and activate
the WSL integration in Docker Desktop settings.
See https://docs.docker.com/docker-for-windows/wsl/ for details.
ok。点击 https://docs.docker.com/docker-for-windows/wsl/ 链接,我们去看下,定位到 第 6 步,试着看下版本是不是不对
检查 wsl 模式
代码语言:javascript复制wsl.exe -l -v
之后列出的信息如下所示,版本为1
ok,接下来,我们把版本升级 2 上。
代码语言:javascript复制 wsl.exe --set-version Ubuntu-20.04 2
将v2设置为以后安装的默认版本
代码语言:javascript复制wsl.exe --set-default-version 2
接下来我们再看下使用 wsl.exe -l -v
命令列出的版本
可以看到,版本已经为 2 了,那么再次进到 wsl 环境中试下,不出意外的话已经可以使用 docker 命令了
代码语言:javascript复制docker
OK,既然环境已经没有问题了,我们看下 Laravel Sail 是如何使用的。
首先安装 Laravel 项目
代码语言:javascript复制composer create-project laravel/laravel sail
看文档是直接可以使用命令./vendor/bin/sail up
即可
安装完成 进到 sail 项目目录里
代码语言:javascript复制cd sail
./vendor/bin/sail up
哇塞,原来真的可以了
...........运行了许久 还是报错了....
暂时先放弃了,稍后再尝试吧......
参考链接: https://zhuanlan.zhihu.com/p/61542198
https://docs.docker.com/docker-for-windows/wsl/
https://laravel.com/docs/8.x/sail