2012-05-06 28 views
0

我使用git的post-receive hook將Ruby on Rails/NodeJS應用程序部署到專用主機。使用git post部署Rails 3應用程序接收

git checkout -f 
/site/sys/post-receive.sh 

我的資料庫是一個文件夾,在repo.git和實際文件拷貝到site

問題是,RVM不在我的路徑(我猜),所以:bundle install失敗,bundle no such command

我該怎麼辦?

全包錯誤:

remote: /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError) 
remote:  from /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec' 
remote:  from /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1230:in `gem' 
remote:  from /usr/local/rvm/gems/ruby-1.9.3-p125/bin/bundle:18:in `<main>' 
+0

也許這(更清潔)解決方案適用於您: http://stackoverflow.com/a/23898362/2167061 – jack

回答

1

which bundle類型看可執行文件的確切位置。然後在後接收鉤子腳本中使用該絕對位置。

+0

「找不到捆綁(> = 0)之間......」 - 我我已經嘗試過(現在和現在)。 'bundle'在直接的ssh中工作。 – CamelCamelCamel

+0

「捆綁軟件在直接ssh中工作」。我不確定你是否理解我的答案,所以在這裏:登錄到SSH,並鍵入「哪個包」。它會返回到可執行文件包的路徑。現在在接收後的掛鉤腳本中使用該路徑。 – ErJab

+0

我做到了:-)當我的SSH包正常工作。當我使用帖子內的路徑收到它不起作用,並顯示上面的錯誤。路徑:'/ usr/local/rvm/gems/ruby​​-1.9.3-p125/bin/bundle'和錯誤:'找不到捆綁器(> = 0)...' – CamelCamelCamel