git post-receive hook没有运行bundle install

时间:2012-11-14 03:31:14

标签: ruby-on-rails ruby linux git bundle

我无法按照以下方式运行post-receive挂钩:

#!/bin/sh
unset $(git rev-parse --local-env-vars)
cd ~/commodity
git pull origin master
bundle install
bundle exec rake assets:precompile
thin restart

我正在从本地推送到远程,我收到此错误:

Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 319 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: From /var/www/html/test
remote:  * branch            master     -> FETCH_HEAD
remote: Updating a06129c..c3c3da3
remote: hooks/post-receive: line 19: bundle: command not found
remote: hooks/post-receive: line 20: bundle: command not found
remote: hooks/post-receive: line 21: thin: command not found
error: cannot run hooks/post-receive: No such file or directory

当我在服务器上克隆我的存储库并推送时,钩子运行并且一切都很棒。 任何想法为什么推送从我的本地机器推送时不会触发捆绑命令?

谢谢!

1 个答案:

答案 0 :(得分:4)

尝试将此行添加到您的收件后挂钩(至少在您第一次bundle ...来电之前):

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

在Unix系统上,rvm会自动将此行添加到~/.bash_profile。在任何非bash上下文(crontab,git hooks)中,你必须手动添加它。