2009-07-23 3 views
2

내 응용 프로그램에 최신 Rails gem을 사용하는 대신 코드 저장소를 vendor/rails에 두는 자체 git 저장소에 코드를 저장하는 것이 좋습니다.프로덕션 응용 프로그램을위한 레일을 공급하는 데 권장되는 방법은 무엇입니까?

이렇게하려면 몇 가지 방법이 있습니다. 실행하려는 특정 분기/태그의 소스를 다운로드하여 저장소에 저장하거나 git submodules를 사용하는 것입니다.

서브 모듈은 당연한 것처럼 보이지만 저장소를 복제 할 때마다 해당 서브 모듈을 사용하려는 지점을 수동으로 체크 아웃해야합니다 (그렇지 않으면 단지 master)? 그리고이 방법을 사용하는 Capistrano 배치에 영향이 있습니까?

답변

1

나는 릴리스에 동결 권하고 싶습니다 :

rake rails:freeze:edge RELEASE=2.3.3 

2-3 안정에 대한 자식 지점이있다,하지만 난 그것을 사용 끔찍한 시간을 가졌다. 서브 모듈은 약간의 고통입니다. Braid 도구는 꽤 좋지만, 나는 Rails와 함께 Rails를 해제하고 싶다.

Capistrano는 코드를 배포하는 데 약간의 부진이 있습니다 (전체 레일스 코드베이스가 있음)하지만 카피 스트라노 자체와 프로덕션 설정을 변경하지 않아야합니다.

행운을 빈다.

1

Capistrano는 하위 모듈을 지원하며 remote_cache를 통해 배포하는 경우 배포가 빠르고 효율적입니다. 당신의 deploy.rb 당신이 필요합니다

세트 : git_enable_submodules 사실 세트 : deploy_via : remote_cache

난 당신이 저장소를 복제에 대해 질문 할 때 무슨 뜻인지 확실히 모르겠어요

합니다. 서브 모듈로 Rails를 배포 한 후에는 특정 커밋/태그/브랜치에 고정시킬 수 있습니다. 이것은 레일즈 커밋을 가리키며 당신의 repo에있는 일종의 분산 심볼릭 링크를 보관합니다 (적어도 생각하고있는 방식입니다). repo를 복제하면 해당 커밋의 트리가 자동으로 풀립니다 (제 생각!).

나는 몇 달 전에이 책을 읽고 나서이 책을 썼다. 그것은 나를 위해 잘 작동합니다.

http://blog.airbladesoftware.com/2009/4/28/how-to-vendor-rails

+0

안녕 앤디 :)이 정보를 감사합니다. 원래 블로그 게시물을 따라 갔지만 하위 모듈과 관련된 여러 가지 문제가 발생했습니다. 예를 들어, 처음 repo를 복제 할 때 'git submodule init'등을 수행해야한다는 것을 알았습니다. repo 사용자가 많고 그 중 일부는 기술적이지 않을 때 이상적이지 않습니다. 가장 단순한 솔루션과 레이크 레일이 필요했습니다. 동결 : 가장자리가 나를 위해 잘 작동하는 것처럼 보였습니다. – Olly

+0

안녕 Olly :) 단순하다 좋다, 나는 기쁜 rake rails 다 : 동결 : edge는 직업을한다. –

관련 문제