2012-05-06 5 views
0

gitのポスト受信フックを使用してRuby on Rails/NodeJSアプリケーションを専用ホストにデプロイします。git postでRails 3アプリをデプロイする

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

私のリポジトリは一つのフォルダ、repo.gitであり、実際のファイルがsiteにコピーされます。

問題はRVMが私のパスにないことです(そうです)。bundle installbundle 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'のパスと' 'bundlerを見つけることができませんでした(... = 0)」というメッセージが表示されます。 – CamelCamelCamel

関連する問題