目錄結構
web-app
|-- current (symbol-link to laravel-app-ver-01)
|-- laravel-app-ver-01
|-- .env
|-- storage
|-- cache
必要的基本設置
*nginx 先設定指向 web-app/current/public
*.env 跟 storage 放在 web-app 根目錄, laravel-app-ver01 內則是直接 link 他們
接下來開始佈署流程
working dir: web-app
1. git clone your-laravel-app
2. mv your-laravel-app laravel-app-ver02
這時候目錄下會長這樣
web-app
|-- current (symbol-link to laravel-app-ver-01)
|-- laravel-app-ver-01
|-- laravel-app-ver-02
|-- .env
|-- storage
|-- cache
3. cd laravel-app-ver-02
# checkout 到你要 deploy 的 branch
4. git checkout --track -b release origin/release
# 刪除 storage 資料夾
5. rm -rf storage
# 把需要的檔案 link 進來 (甚至 node_modules 也可以 link ,可減少 npm install 的時間)
6. ln -s web-app/storage storage
7. ln -s web-app/.env .env
8. ln -s web-app/bootstrap/cache cache
# 剩下的是看需要什麼就跑什麼
composer update --no-scripts
npm install
gulp
php artisan migrate
最後要做的就是把 current link 抽換成 laravel-app-ver-02
然後就可以砍掉 laravel-app-ver01 了
// 不知道為什麼 overwrite 的時候要反過來...
// 可以觀察到前面的 rules 都是 A -> B 的時候參數順序是 A, B
// 但是當要讓 current -> laravel-app-ver-02 的時候卻是帶 B, A
ln -snf laravel-app-ver-02 current
※ 以上的動作可以直接用 envoyer 做掉,一個月 10美金。
No comments:
Post a Comment