搭建 Laravel Sail 开发环境 - Windows
说明
本文将一步步带你在 Windows 10 搭建 Laravel Sail 开发环境。
请遵循步骤进行操作,如遇问题在文章下方提问。
一、升级系统
Laravel Sail 要求支持 WSL 2 的 Windows 10 系统。
在 2020 年五月份发布的 2004 版本才支持 WSL 2 功能,所以我们的系统需更新到等于或大于 2004 版本。
2004 版本是 Windows 10 的系统版本代号,完整的系统版本代号列表请见 Windows 10 release information ,注意这一张表:
如果查看系统版本呢?
可以使用 winver 命令:
打开后查看这个地方:
参考 Windows 10 release information ,版本的发布时间大于 1909 即可。
注意: 本教程是基于 20H2 版本撰写的,其他版本也许会遇到问题,建议升级到 20H2 或者以上。
如何升级系统?
Windows 10 的具体升级方法请自行搜索教程。
推荐的做法是前往微软官方,下载 最新版本的镜像 下载完成后,挂着 ISO 文件,点击:
然后直接下一步下一步就可以升级安装,安装时请注意将【保留个人文件和应用】这部分打钩:
安装成功后,搜索打开 Windows 功能管理 窗口,确保下图箭头的两个地方都已开启:
至此系统准备就绪。
二、安装 Windows Terminal
为了更好地访问 Windows 的子系统,推荐使用 Windows Terminal 作为命令行工具。
打开微软商店,搜索关键字 Windows Terminal
,在搜索结果中点击安装即可:
先下好,后面我再讲如何使用。
三、下载 VSCode
打开 code.visualstudio.com/download ,选择 Windows 版本的 VSCode 进行下载并安装,此处不再赘述。
先安装好,后面我再讲如何使用。
四、安装 Ubuntu
接下来下载和安装子系统 —— Ubuntu 。
打开微软商店,搜索关键词 Ubuntu,第一和第二个都可以:
点击获取:
安装完成后,点击启动:
2004 版本可能会遇到以下:
前往这里 下载补丁 (请注意 2004 后面的版本无需下载) :
下载后运行安装:
提示: 如果你遇到 指定的网络名不再可用 等报错,请先确保下主板的虚拟化是否开启,开启方法请自行搜索,篇幅原因不在赘述。
如果一切正常,一两分钟后会有以下界面提示创建一个 Ubuntu 系统的用户:
上面输入用户名,接下来输入密码即可完成 Ubuntu 子系统的安装:
这个 Ubuntu 为当前 Windows 系统的子系统,接下来我们的 Docker 会基于此系统运行。
五、安装 Docker Desktop
1. 下载并安装
前往 Docker 官网下载 Docker Desktop ,下载完成后点击安装包安装,一直下一步即可。
2. 开启 WSL2 模式
安装完成后运行程序,进入配置页面,开启 WSL2 模式:
同时这个地方也需要设置,选择我们上一步安装的 Ubuntu 系统,然后点击右下方的按钮应用修改:
提示: 如果你看不到以上 Ubuntu 的地方,请参考这篇笔记 博客:搭建 Laravel Sail 开发环境 - Windows,docker选项设置 没有 'ubuntu...
3. Docker Hub 镜像加速
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:
由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 docker-practice/docker-registry-cn-mirror-test 查看。
国内各大云服务商(腾讯云、阿里云、百度云)均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考本页最后一小节。
本节我们以 网易云 镜像服务 https://hub-mirror.c.163.com
为例进行介绍。
首先点击这里进入设置中心:
复制以下内容:
,
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
进入 Docker Engine 里,黏贴上面的代码,如下:
最后点击 Apply & Restart ,进行重启,一般需要耗费一两分钟。
六、创建测试项目
打开我们上面下载的 Windows Terminal 命令行,按照以下指示进入 Ubuntu 系统:
Ubuntu 作为 Windows 子系统,可以访问到主系统下的硬盘。
为了方便管理代码,我在 C 盘下创建了 Code 目录:
$ cd /mnt/c
$ mkdir Code
$ cd Code
进入此目录后,使用以下命令进行创建一个测试的 Laravel 项目:
$ curl -s https://laravel.build/example-app | bash
界面如下:
安装过程中,可能会有卡顿,需耐心等待。
最终创建成功的界面:
打开我们的 Code 目录:
Windows Terminal 工具很好的集成了 VSCode,我们可以在命令行中直接打开编辑器:
$ cd example-app/
$ code .
如下:
VSCode 会在当前目录打开:
七、修改 Dockerfile 文件
Laravel 8 默认用的是 vendor/laravel/sail/runtimes/8.0
目录下的 Dockerfile,本文将以此来讲解。7.4
或其他版本与此类似。
1. 加速 Linux 更新
新建文件,内容如下:
vendor/laravel/sail/runtimes/8.0/sources.list
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
注意, 上面的focal
是ubuntu 20.04,现在最新的sail默认用的是ubuntu 21.04,如果Dockerfile开头是ubuntu 21.04。需要把focal
替换成 hirsute
。
在设置 Timezone 后面,RUN apt-get update
之前,新增 ADD
命令:
vendor/laravel/sail/runtimes/8.0/Dockerfile
.
.
.
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD sources.list /etc/apt/
RUN apt-get update \
.
.
.
2. Ubuntu PPA 加速
在 vendor/laravel/sail/runtimes/8.0/Dockerfile 文件中,搜索并将:
http://ppa.launchpad.net
替换为:
https://launchpad.proxy.ustclug.org
这是中国科学技术大学开源软件提供的镜像。
3. 下载 Composer 可执行文件
在 vendor/laravel/sail/runtimes/8.0/Dockerfile 文件中,搜索以下这一行:
&& php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
替换为:
&& curl -so /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \
&& chmod a+x /usr/bin/composer \
&& composer --version \
这是从阿里云镜像上下载。
4. Node 二进制文件下载
Node 二进制文件下载是以下这一行代码:
&& curl -sL https://deb.nodesource.com/setup_15.x | bash - \
目前没有好的加速通道,安装时可能会卡住这里,多尝试几次。
八、运行容器
在项目的根目录下,执行以下命令:
$ ./vendor/bin/sail up
第一次运行的时候,会初始化容器,有了上面的我们对 Dockerfile 的定制,应该会比较顺利。
如果卡住了,可以到社区 learnku.com/laravel 留意以寻求帮助。
注意 sail up
命令运行成功后,会一直显示软件的实时日志界面:
此时你可以 ctrl+c
中断运行,再次运行时,可以使用 -d
参数让 sail up
命令在后台运行:
$ ./vendor/bin/sail up -d
扩展知识:d
为 Deamon 的简写。Daemon 程序,又称为守护进程,通常在系统后台长时间运行。
九、快速上手
请参考: 搭建 Laravel Sail 开发环境 - MacOS