Laravel 官方最近发布了 Laravel Sail —— 一个轻量级的、基于 Docker 的 Laravel 本地集成开发环境,今天学院君就以 Mac 系统为例,给大家演示下如何基于 Laravel Sail 来构建这个本地开发环境。
Laravel Sail 本身适用于 Mac、Windows、Linux 全平台,使用之前,需要确保本地已经安装过适用于本系统的 Docker Desktop。
首先,通过如下全新的安装命令初始化一个新的 Laravel 项目 redis-demo
(项目名称可任意设置):
curl -s https://laravel.build/redis-demo | bash
通过终端输出可以看到,该安装流程会先拉取 laravelsail/php80-composer
这个 Docker 镜像(包含 PHP 和 Composer),而后在当前目录下新建这个 Laravel 项目:
如果在
Updating dependencies
之后长期没有反应,或者提示 Composer 下载超时异常,可以直接下载学院君提供的 Laravel 8.x 一键安装包,其中包含了对 Sail 的支持(点击本文底部左下角「阅读原文」即可获取下载链接)。
项目初始化成功后,即可进入 redis-demo
项目,然后通过 Sail 提供的 up
命令启动 Sail,首次启动会拉取 MySQL、Redis 镜像:
如果之前启动了 Valet 或者 Laradock 作为本地开发环境,需要通过
valet stop
或者docker-compose down
命令关闭对应的 Nginx、MySQL、Redis 服务,以免出现端口冲突。
Sail 本质上是基于 Docker Compose 编排的 Docker 容器服务构建起来的 Laravel 集成开发环境(包含 PHP、MySQL、Redis),只不过针对 Laravel 项目做了上层封装和兼容,你不需要了解任何关于 Docker 容器的知识,就可以通过 Sail 文档提供的命令满足日常开发需求,这极大降低了基于 Docker 搭建 Laravel 本地开发环境的入门门槛。
和 docker-compose
一样,你可以通过 -d
选项指定以后台守护进程的方式来启动所有相关容器服务:
所有容器服务启动成功后,就可以在浏览器中通过默认的 laravel.test
域名来访问这个新建的项目了:
当然,你也可以通过修改项目根目录下 docker-compose.yml
文件中默认的应用服务名称来调整域名:
services:
redis.test:
...
调整之后,先停掉所有服务,再重新启动,让变更生效:
代码语言:javascript复制./vendor/bin/sail down --remove-orphans
./vendor/bin/sail up -d
这样,就可以通过 http://redis.test
访问这个项目了:
更多关于 Sail 的使用教程,请参考 Laravel 官方文档,如果想更进一步,还可以学习 Docker 底层知识以便更好地掌握这个本地开发环境。