基于 Laravel Envoy 的部署脚本
如题,找了半天貌似都没有符合laravel的天朝网络环境的的部署脚本,
于是乎结合参考了多个部署脚本和工具的理念又造了个新轮子:
使用说明见:https://github.com/nickfan/envoy-deployscr...
原文:http://blog.axiong.me/2015/07/envoy-deploy...
主要特点:
支持本地构建打包部署
envoy run deploy_localrepo_install --branch=master --env=production
支持工作拷贝本地构建依赖模块(vendor目录)
envoy run deploy_mix_pack
欢迎大家测试吐槽。
原理/设计规划
你的 $deploybasepath
远程部署基础路径将会看起来像如下这样(如果你有多个子应用在同一个部署基路径里).
mysite/
mysite2/
mysite3/
你的 $deploybasepath/$appname
远程部署应用路径将会看起来如下.
releases/release_20150717032737/
releases/release_20150717034646/
current -> ./releases/release_20150717034646
shared/storage/
tmp/
.env
正如你所见的, current 目录是软链到最近一次的部署目录的
在你的部署目录中文件列表看起来像下面这样(只列举了部分文件做例子):
app/
artisan
boostrap/
public/index.php
composer.json
.env -> ../../.env
storage -> ../../shared/storage
vendor/
部署目录中的.env文件和storage文件夹都软链接到了上级应用目录中的公共文件/文件夹了,这样部署本身只部署源代码和vendor等依赖环境,
storage等公共数据在shared文件夹中并不随代码部署,节省了空间也保留延续了日志/应用cache等相关基础数据在应用中的使用