2016-08-02 7 views
1

Capistrano로 레일 앱을 전개하려고합니다. 응용 프로그램이 배포되고 번들 설치가 실행됩니다.
~/.rvm/bin/rvm default - 번들 설치 --path/home/pro/www/shared/bundle - 개발 테스트없이 --deployment --quiet승객과 카스트리스 노가 잘못된 보석을 골라내는 레일 앱

하지만 앱을 실행할 때 기본 gemset을 사용하고 공유/묶음의 보석은 사용하지 않습니다. 다음과 같은 오류가 발생합니다

Message from application: <p>It looks like Bundler could not find a gem. Maybe you didn't install all the gems that this application needs. To install your gems, please run:</p> 


Could not find rake-11.2.2 in any of the sources (Bundler::GemNotFound) 

<pre> /home/pro/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler/spec_set.rb:95:in `block in materialize&#39; 

여기에서 문제를 이해하지 못합니다. MY deploy.rb 파일이 있습니다

set :application, 'rails_a[[' 
set :repo_url, '[email protected]:user/app.git' 
# set :rvm_ruby_version, '[email protected]' 

세트 : 단계 %를 (생산) 세트 W : deploy_to, '/ 홈/프로/www가'

답변

0

문제가 구성 될 수 있습니다. rvm은 루비 버전에 따라 $GEM_HOME 환경 변수를 설정하고 bundler는 기본적으로 경로 (즉, BUNDLE_PATH)에서 $GEM_HOME (개발 중)까지 설정합니다. 이것을 번들러 설정에서 오버라이드 할 수 있습니다.

응용 프로그램 디렉토리 내부. 응용 프로그램에 특정 변경 내용을 유지합니다

bundle config --local path /home/pro/www/shared/bundle 

local 플래그, 당신은 또한 당신의 배포 서버에 번들 CONFIGS를 밀어 당신의 .gitignore에서 .bundle을 제거해야합니다.

번들 구성 documentation을 살펴보십시오.

This 또한 유용한 블로그 게시물입니다.

0
Capistrano and RVM 

[ruby] 
$:.unshift(File.expand_path(‘./lib’, ENV['rvm_path'])) 
require "rvm/capistrano" 
set :rvm_ruby_string, ‘[email protected]′ 
set :rvm_type, :user 
[/ruby] 

여기 @ rails3.2는 gemset입니다. capistrano가 번들 설치를 호출하면이 gemset이 사용됩니다. 그래서 당신은 rvm_ruby_string을 설정해야합니다.