Capistrano를 사용하여 PHP 웹 사이트를 배포하려고합니다. 이 웹 사이트는 4 개의 구성 요소 (프론트 엔드 코드와 3 개의 웹 서비스)로 구성되며 각 구성 요소는 자체 저장소에 저장됩니다. 나는 4 개의 구성 요소 모두를 단일 트리 구조 (아래 참조)에 배포하여 웹 사이트 버전 간 전환이 "현재"링크를 이동하는 것처럼 간단 할 수 있도록하고 싶습니다.Capistrano와 Git을 사용하여 하나의 트리에 여러 응용 프로그램 배포
기본적으로 Capistrano 배포는 단일 리포지토리를 배포하도록 설계된 것으로 확인되었습니다. 올바르게 이해한다면 Caphub과 같은 것을 사용해도 4 가지 구성 요소가 4 개의 다른 트리에 배치되어 특정 시점에 롤백을하는 것이 번거로운 프로세스이기 때문에 도움이되지 않습니다.
Capistrano를 사용하여 아래의 구성을 얻을 수있는 방법이 있습니까? 이 상황에서 가장 좋은 방법은 무엇입니까?
root/
| current/
| releases/
| | <timestamp/>
| | | frontend/
| | | webservice-1/
| | | webservice-2/
| | | webservice-3/
| | <timestamp/>
| | | frontend/
| | | webservice-1/
| | | webservice-2/
| | | webservice-3/
| shared/
업데이트 :
이 허용 대답에 제안으로 서브 모듈 솔루션을 사용하여 상처. 필자는 4 개의 하위 모듈을 보유하고있는 웹 사이트 리포지토리와 웹 사이트 배포 리포지토리를 만들어서 카피 스트라노 배포 파일을 보관합니다. 모든 배포에서 하위 모듈을 업데이트하는 번거 로움을 덜어주기 위해 간단한 쉘 스크립트를 작성했습니다 (상당히 번거로운 프로세스입니다!). 배포하려면 스크립트 (아래 소스)를 실행 한 다음 "cap deploy"를 실행하십시오.
#!/bin/sh
git clone gitserver:path_to_git_repositories/website.git cloned
cd cloned
git submodule init
git submodule update
git submodule foreach git pull origin master # updating all modules to the current code in the master branch
git submodule foreach git add .
git commit -a -m "Updating submodules"
git push origin master
cd ..
rm -rf cloned
새로운 접근 방식이 있습니다. 이 답변 http://stackoverflow.com/a/40921589/2067375를 참조하십시오. (면책 조항 : 나는 보석의 주인이다) –