laravel envoy 사용하기
개요
envoy는 laravel 에 포함된 작고 가벼운 task runner 로 자주 실행해야 하는 작업을 자동화할 수 있습니다. 즉 원격지에 ssh 로 연결하여 다음과 같은 명령어를 수행하여 laravel app 를 deploy 할 경우 적당한 도구입니다.
ssh user@myserver cd /var/www/myservice git pull origin master
envoy 는 다음 컴포저 명령으로 간단하게 설치할 수 있습니다.
envoy 는 Linux 와 Mac OS X 만 지원합니다.
composer global require "laravel/envoy"
설치가 완료되면 ~/.composer/vendor/bin 을 PATH 에 추가하면 되므로 아래 내용을 .bash_profile 같은 쉘의 초기화 파일에 추가해 주면 됩니다.
export PATH=$PATH:$HOME/.config/composer/vendor/bin
만약 아래와 같은 에러가 발생한다면 php-process 패키지가 없는 것이므로 패키지 명령어를 사용하여 해당 패키지를 설치해 주어야 합니다.
PHP Fatal error: Call to undefined function posix_getpwuid()
사용
Envoy.blade.php 라는 파일에 실행할 task 를 작성한 후에 envoy 명령어를 실행하면 되며 용법은 다음과 같습니다.
envoy command arguments
init 명령을 사용하면 Envoy.blade.php 를 생성할 수 있으며 아규먼트로 호스트 이름을 주면 됩니다.
envoy init localhost
@servers(['web' => 'localhost']) @task('deploy') cd /path/to/site git pull origin master @endtask