[공통] vendor 디렉토리를 제외한 저장소를 통해 capistrano로 배포하기
https://github.com/capistrano/composer
위 url로 접속해보면 capistrano의 composer 플러그인이 있다.
우리는 capistrano를 설치하느라 ruby gems가 설치되어 있으므로(?) 간단히 커맨드를 입력하여 설치해보자.
$ gem install capistrano-composer
{배포할_프로젝트_디렉토리}/capistrano/Gemfile 을 선호하는 에디터로 열어 다음 줄을 추가한다.
require 'capistrano/composer'
프로젝트 내의 bootstrap/cache/.gitignore 파일을 저장소에 추가해 둔다. (해당 경로가 없으면 오류가 난다.)
{배포할_프로젝트_디렉토리}/capistrano/config/deploy.rb 파일에 아래 내용을 추가한다.
(라이브 서버의 /var/www/project/ 디렉토리에 배포 된다고 가정)
task :permission_cache do
on roles :all do
execute :chmod, '777 /var/www/project/bootstrap/cache'
end
end
after "deploy:finished", "permission_cache"
storage 디렉토리 등이 필요한 경우 linked_dirs 옵션에서 설정 해 둔다.
늘 하던대로 cap {stage} deploy 명령을 실행하면
저장소에서 내려받기 > composer install > 마지막에 추가한 bootstrap/cache 디렉토리 권한설정 의 순서로 작업이 수행된다.
코드저장소에는 composer.json만 가지고 있으면 된다.