之前是使用 Git Hook 實現自動部署,如今改成使用 Laravel Envoy,記錄一下。php
前提條件是能夠免密登錄服務器,能夠看這篇文章html
composer global require laravel/envoy
進行安裝envoy init user_name@ip_path
,執行操做後,會建立 Envoy.blade.php
文件以下@servers(['web' => 'user_name@ip_path']) @task('deploy') cd /path/to/site git pull origin master @endtask
執行完上面的步驟後,就能夠編寫部署任務了。laravel
@servers(['web' => 'user_name@ip_path']) @task('deploy') cd /path/to/site git pull origin master composer install --no-dev @endtask
story
,將多個 task
進行拆分,以下@servers(['web' => 'user_name@ip_path']) @setup $path = '/path/to/site'; @endsetup @story('deploy') git composer @endstory @task('git') cd {{ $path }} git pull origin master @endtask @task('composer') composer install --no-dev @endtask
docker exec -u=laradock laradock_workspace_1 bash -c 'cd path && composer install --no-dev'
使用 envoy run deploy
執行便可。注意要將 Envoy.blade.php
文件加入 .gitignore
防止泄漏重要信息。git
參考資料:Laravel Envoy、Laravel Envoy 文檔。github