2014-04-24 4 views
0

개발을위한 단일 응용 프로그램 디렉토리가 있습니다 : d:/some/dir/myapp. sample-repo이라는 단일 저장소가 있지만 두 개의 분기 (developmaster)가 있습니다.Gemfile.lock을 개발 및 프로덕션 리포지토리에 배포하는 레일

내 애플의 Gemfile은 sample-repo 저장소의 환경에 특정 분기를 사용

RAILS_ENV = ENV['RAILS_ENV'] || 'development' 
gem 'sample-repo', git: "[email protected]:MyUserName/sample-repo.git", 
       branch: "#{ RAILS_ENV.to_sym == :production ? :master : :develop }" 

내 웹 호스트 두 개의 별도의 디렉토리를 가지고; 하나는 개발 용이고 다른 하나는 생산 용입니다. 각각은 해당 지점에서 git pull을 통해 업데이트됩니다 (development => development, production => master). 내 개발 컴퓨터에 bundle update를 실행할 때 Gemfile.lock가 develop 지점을 지정하여 sample-repo 보석이 포함되어 있기 때문에

문제입니다. 그런 다음 gemfile.lock을 repo (개발 및 마스터)에 밀어 넣으십시오. 이제 master repo에는 개발 분기를 지정하는 Gemfile.lock이 포함되어 있습니다!

이 문제는 developmaster 나뭇 가지 사이를 돌아 다니면서 단 한 Gemfile.lock 파일이 있다는 것입니다.

답변

0

This answer이 내 문제를 해결했습니다. .rails-env이라는 파일을 만들었습니다.이 파일에는 번들러가 사용해야하는 환경을 지정하는 간단한 문자열이 들어 있습니다. 이 파일은 저장소 외부에 보관해야합니다. 존재하지 않으면 번들러는 개발을 기본값으로합니다.

문제의 두 번째 부분은 배포 절차를 조정해야한다는 것이 었습니다. 개발 환경에서 bundle update을 실행하고 프로덕션을 위해 동일한 작업을 수행하기 전에 키 누름을 기다리는 작은 스크립트를 만들었습니다. 개발 된 Gemfile.lock 파일이 생성되면 변경 사항을 내 develop 저장소 분기로 푸시합니다. 생산이 끝나면 master으로 푸시합니다.

관련 문제