Laravel Envoy Deployment Script 使用教程
1. 项目的目录结构及介绍
envoy-deployscript/
├── .gitignore
├── Envoy-deployscript.mmap
├── Envoy-deployscript.png
├── Envoy.blade.php
├── LICENSE
├── README.md
├── README.zh-CN.md
├── envoy.config.example.php
└── extra/
└── custom/
└── node_modules/
└── laravel-elixir/
└── Config.js
目录结构介绍
- .gitignore: Git 忽略文件配置。
- Envoy-deployscript.mmap: 项目相关文件。
- Envoy-deployscript.png: 项目相关图片。
- Envoy.blade.php: Envoy 部署脚本文件。
- LICENSE: 项目许可证文件。
- README.md: 项目英文介绍文档。
- README.zh-CN.md: 项目中文介绍文档。
- envoy.config.example.php: Envoy 配置文件示例。
- extra/custom/: 自定义文件目录,部署时会覆盖目标服务器上的文件。
2. 项目的启动文件介绍
Envoy.blade.php
Envoy.blade.php
是项目的核心启动文件,负责定义部署任务和执行流程。该文件使用 Laravel Envoy 工具编写,提供了以下主要任务:
- deploy_init: 初始化部署环境。
- deploy: 执行部署任务。
- rollback: 回滚到上一个部署版本。
- dbrollback: 回滚数据库迁移。
使用示例
envoy run deploy_init --branch=develop --env=development
envoy run deploy --branch=develop --env=development
envoy run rollback
envoy run dbrollback --branch=master --env=production
3. 项目的配置文件介绍
envoy.config.example.php
envoy.config.example.php
是 Envoy 部署脚本的配置文件示例。用户需要将其复制并重命名为 envoy.config.php
,然后根据实际情况进行配置。
主要配置项
- $deploy_basepath: 服务器上的基础路径,用于存放部署文件。
- $app_name: 应用名称。
- $source_repo: Git 仓库地址。
- $pack_mode: 打包模式,可选值为
local
或remote
。 - $deploy_mode: 部署模式,可选值为
incr
或link
。 - $release_keep_count: 保留的部署版本数量。
配置示例
$deploy_basepath = '/var/www/mysite';
$app_name = 'mysite';
$source_repo = 'git@github.com:user/mysite.git';
$pack_mode = 'local';
$deploy_mode = 'link';
$release_keep_count = 5;
注意事项
- 确保服务器已配置 SSH Key-Based Authentication。
- 根据项目需求调整配置文件中的参数。
- 部署前确保
$deploy_basepath
目录已创建并具有正确的权限。