0

Capistrano는 Rails 응용 프로그램을 배포 할 때마다 언제든지 다시 내보낼 수 없으며 릴리스간에 공유해야하는 파일을 저장하기 위해 shared/ 디렉토리를 생성합니다. 내 응용 프로그램에서는 거의 변경되지 않는 shared/ 디렉토리에 여러 항목이 있지만 (응용 프로그램 트리가 아닌 응용 프로그램 트리에 속해 있기 때문에) 나는 으로 변경하는 경우에도 버전 관리를 원합니다.Capistrano : 공유 된 파일의 버전 제어/

파일을 제어하는 ​​버전에 접근하는 가장 좋은 방법은 무엇입니까?하지만 카피스트라 노가 내보내는 저장소와 별도로 유지하는 것이 가장 좋습니다.

답변

3

/shared 디렉토리는 실제로 버전이없는 데이터 용입니다. 예를 들어 번들 된 보석을 저장하면 매번 모든 보석을 다시 설치할 필요가 없습니다. 또한 로그를 저장할 수 있으므로 배포 할 때마다 덮어 쓰지 않습니다. 거기에 pid 파일을 저장할 수 있으므로 배포하는 동안 중요한 프로세스의 프로세스 ID를 잃지 않게됩니다. 사용자 생성 또는 부분적으로 처리 된 데이터를 저장하여 릴리스 중에 제거되지 않도록 할 수도 있습니다. 파일의 버전이 변경되고 변경 될 가능성이있는 경우 나머지 파일 및 공유 디렉토리에서 파일을 보관하는 것이 좋습니다.

즉, 데이터베이스 구성 파일과 같이 공유 디렉토리의 데이터를 미리 채우기 위해 배포 스크립트를 작성할 수도 있습니다. 이 스크립트는 각 배포시 실행되며 완전히 사용자 정의 될 수 있습니다. 예를 들어, 데이터베이스 설정 스크립트는 설정 파일을 아직 작성하지 않은 경우에만 쓸 수 있습니다.

+0

그건 의미가 있습니다. 변경해야하는 파일을 소스 트리로 옮깁니다. 감사! – jrdioko

0

공유 디렉토리의 또 다른 일반적인 용도는 구성 파일입니다. 구성 파일의 버전 관리 및 소스 제어는 매우 좋은 생각이지만 시스템 구성 관리 도구에서 관리해야합니다. 필자의 환경에서는 Capistrano를 사용한 코드 릴리스와 Puppet을 사용한 시스템 구성을 관리합니다. 이렇게하면 설정 파일에 대한 소스 제어가 여전히 존재하지만 코드 배포 프로세스와 구별됩니다. 코드 배포 프로세스는 시스템 구성과 독립적으로 유지됩니다.