如何使用git hook post-receive中的特定rvm gemset进行捆绑安装?

Art*_*rty 9 ruby git ruby-on-rails bundler rvm

所以,我试图在不使用capistrano的情况下实现类似Heroku的部署.要检查并安装gem,我正在尝试使用git hook并将以下命令放在/ hooks/post-receive中:

bundle check || bundle install
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时,git push我得到:

remote: hooks/post-receive: line 20: bundle: command not found. 
Run Code Online (Sandbox Code Playgroud)

我知道钩子可能从错误的环境启动命令,不知怎的,我必须从钩子切换rvm环境.我试图在post-receive中使用rvm使用1.8.7@rails3,但它没有帮助.有任何想法吗?

Ada*_*arp 6

您可能只需要确保在钩子顶部获取用户的环境,例如:

$ source $HOME/.bash_profile # single user RVM setup
$ source /etc/profile        # multi user RVM setup
Run Code Online (Sandbox Code Playgroud)

  • 我遇到了完全相同的问题(但是我没有使用RVM,我只安装了一个Ruby版本).你建议的解决方案不适合我,但它让我弄清楚PATH的问题.感谢那!对我有用的是将Ruby的bin文件夹包含在post-receive钩子开头的路径中(例如`PATH = $ PATH:/ home/deploy/ruby​​_2.1.1/bin`). (2认同)