Child pages
  • laravel envoy 사용하기

 

개요

envoy는 laravel 5에 포함된 작고 가벼운 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=~1.0"

 

설치가 완료되면 ~/.composer/vendor/bin 을 PATH 에 추가하면 되므로 아래 내용을 .bash_profile 같은 쉘의 초기화 파일에 추가해 주면 됩니다.

export PATH=$PATH:$HOME/.composer/vendor/bin 을 PATH 에 추가

 

만약 아래와 같은 에러가 발생한다면 php-process 패키지가 없는 것이므로 패키지 명령어를 사용하여 해당 패키지를 설치해 주어야 합니다.

PHP Fatal error: Call to undefined function posix_getpwuid()

RHEL/CentOS 에서 WebTatic Repository 를 통해 php56w 를 설치했을 경우 아래 패키지를 추가로 설치하면 됩니다.

yum install php56w-process

 

사용

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          

 

 

같이 보기

 

Ref