搭建 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 ,注意这一张表:

Windows 10 下的 Sail 环境搭建

如果查看系统版本呢?

可以使用 winver 命令:

Windows 10 下的 Sail 环境搭建

打开后查看这个地方:

Windows 10 下的 Sail 环境搭建

参考 Windows 10 release information ,版本的发布时间大于 1909 即可。

注意: 本教程是基于 20H2 版本撰写的,其他版本也许会遇到问题,建议升级到 20H2 或者以上。

如何升级系统?

Windows 10 的具体升级方法请自行搜索教程。

推荐的做法是前往微软官方,下载 最新版本的镜像 下载完成后,挂着 ISO 文件,点击:

搭建 Laravel Sail 开发环境 - Windows

然后直接下一步下一步就可以升级安装,安装时请注意将【保留个人文件和应用】这部分打钩:

搭建 Laravel Sail 开发环境 - Windows

安装成功后,搜索打开 Windows 功能管理 窗口,确保下图箭头的两个地方都已开启:

搭建 Laravel Sail 开发环境 - Windows

至此系统准备就绪。

二、安装 Windows Terminal

为了更好地访问 Windows 的子系统,推荐使用 Windows Terminal 作为命令行工具。

打开微软商店,搜索关键字 Windows Terminal ,在搜索结果中点击安装即可:

Windows 10 下的 Sail 环境搭建

先下好,后面我再讲如何使用。

三、下载 VSCode

打开 code.visualstudio.com/download ,选择 Windows 版本的 VSCode 进行下载并安装,此处不再赘述。

先安装好,后面我再讲如何使用。

四、安装 Ubuntu

接下来下载和安装子系统 —— Ubuntu 。

打开微软商店,搜索关键词 Ubuntu,第一和第二个都可以:

Windows 10 下的 Sail 环境搭建

点击获取:

Windows 10 下的 Sail 环境搭建

安装完成后,点击启动:

Windows 10 下的 Sail 环境搭建

2004 版本可能会遇到以下:

Windows 10 下的 Sail 环境搭建

前往这里 下载补丁请注意 2004 后面的版本无需下载) :

Windows 10 下的 Sail 环境搭建

下载后运行安装:

Windows 10 下的 Sail 环境搭建

提示: 如果你遇到 指定的网络名不再可用 等报错,请先确保下主板的虚拟化是否开启,开启方法请自行搜索,篇幅原因不在赘述。

如果一切正常,一两分钟后会有以下界面提示创建一个 Ubuntu 系统的用户:

Windows 10 下的 Sail 环境搭建

上面输入用户名,接下来输入密码即可完成 Ubuntu 子系统的安装:

Windows 10 下的 Sail 环境搭建

这个 Ubuntu 为当前 Windows 系统的子系统,接下来我们的 Docker 会基于此系统运行。

五、安装 Docker Desktop

1. 下载并安装

前往 Docker 官网下载 Docker Desktop ,下载完成后点击安装包安装,一直下一步即可。

2. 开启 WSL2 模式

安装完成后运行程序,进入配置页面,开启 WSL2 模式:

Windows 10 下的 Sail 环境搭建

同时这个地方也需要设置,选择我们上一步安装的 Ubuntu 系统,然后点击右下方的按钮应用修改:

Windows 10 下的 Sail 环境搭建

提示: 如果你看不到以上 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 为例进行介绍。

首先点击这里进入设置中心:

MacOS 下的 Sail 环境搭建

复制以下内容:

,
  "registry-mirrors": [
    "https://hub-mirror.c.163.com"
  ]

进入 Docker Engine 里,黏贴上面的代码,如下:

Windows 10 下的 Sail 环境搭建

最后点击 Apply & Restart ,进行重启,一般需要耗费一两分钟。

六、创建测试项目

打开我们上面下载的 Windows Terminal 命令行,按照以下指示进入 Ubuntu 系统:

Windows 10 下的 Sail 环境搭建

Ubuntu 作为 Windows 子系统,可以访问到主系统下的硬盘。

为了方便管理代码,我在 C 盘下创建了 Code 目录:

$ cd /mnt/c
$ mkdir Code
$ cd Code

进入此目录后,使用以下命令进行创建一个测试的 Laravel 项目:

$ curl -s https://laravel.build/example-app | bash

界面如下:

Windows 10 下的 Sail 环境搭建

安装过程中,可能会有卡顿,需耐心等待。

最终创建成功的界面:

Windows 10 下的 Sail 环境搭建

打开我们的 Code 目录:

Windows 10 下的 Sail 环境搭建

Windows Terminal 工具很好的集成了 VSCode,我们可以在命令行中直接打开编辑器:

$ cd example-app/
$ code .

如下:

搭建 Laravel Sail 开发环境 - Windows

VSCode 会在当前目录打开:

搭建 Laravel Sail 开发环境 - Windows

七、修改 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 命令运行成功后,会一直显示软件的实时日志界面:

搭建 Laravel Sail 开发环境 - MacOS

此时你可以 ctrl+c 中断运行,再次运行时,可以使用 -d 参数让 sail up 命令在后台运行:

$ ./vendor/bin/sail up -d

扩展知识:d 为 Deamon 的简写。Daemon 程序,又称为守护进程,通常在系统后台长时间运行。

九、快速上手

请参考: 搭建 Laravel Sail 开发环境 - MacOS

十、附录:连接方式

请参考:搭建 Laravel Sail 开发环境 - MacOS

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
Summer
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 15
发起讨论 只看当前版本


talers69
Laravel sail 构建镜像时,卡住了
1 个点赞 | 4 个回复 | 问答 | 课程版本 8.x
Junwind
更新 wsl 内核
0 个点赞 | 12 个回复 | 分享 | 课程版本 9.x
jackzheng9969
laravel sail 在wsl 2下 响应速度特别慢?
0 个点赞 | 10 个回复 | 问答 | 课程版本 8.x
KingMarx
curl创建项目出错,curl -s https://laravel.build/example-app | bash
0 个点赞 | 6 个回复 | 分享 | 课程版本 9.x
cold777
安装laravel报错
0 个点赞 | 5 个回复 | 问答 | 课程版本 8.x
laravel sail环境搭建问题
0 个点赞 | 5 个回复 | 问答 | 课程版本 9.x
heaker
执行./vendor/bin/sail up -d报 [已退出进程,代码为 1 (0x00000001)]
0 个点赞 | 5 个回复 | 问答 | 课程版本 9.x
heaker
laravel sail windows环境安装执行第8步时报错
0 个点赞 | 5 个回复 | 问答 | 课程版本 9.x
zhuameng
Windows搭建 Laravel Sail 开发环境遇到的坑
0 个点赞 | 3 个回复 | 分享 | 课程版本 9.x
cmmdwl
zz52998
报错Warning:TTY mode requires /dev/tty to be read/writable.
0 个点赞 | 2 个回复 | 问答 | 课程版本 8.x
learner
curl -s https://laravel.build/example-app | bash执行后没任何反应
0 个点赞 | 1 个回复 | 问答 | 课程版本 9.x
W_957
安装开发环境报错
0 个点赞 | 0 个回复 | 问答 | 课程版本 9.x
adminadmin
在安装Ubuntu之前需要做的先安装开启WSL2服务
0 个点赞 | 0 个回复 | 分享创造 | 课程版本 9.x