Noa*_*orp 2 capistrano ruby-on-rails bundler
我刚刚遇到了capistrano部署gem依赖项的一个微妙问题,我想强制执行capistrano的调用.
如何检测使用'bundle exec'调用capistrano,如下所示:
bundle exec cap app deploy
Run Code Online (Sandbox Code Playgroud)
而不是这样的:
cap app deploy
Run Code Online (Sandbox Code Playgroud)
我想通过检测deploy.rb文件顶部的调用方法来引发后一种情况的错误.
小智 7
在运行可执行文件时,Bundler似乎设置了$ BUNDLE_BIN_PATH和$ BUNDLE_GEMFILE环境变量.例如,执行以下操作:
env >/tmp/1
bundler exec env >/tmp/2
diff -u /tmp/[12]
Run Code Online (Sandbox Code Playgroud)
你会看到环境的差异.
那么在您的部署脚本中,您可以执行以下操作:
abort "You must run this using 'bundle exec ...'" unless ENV['BUNDLE_BIN_PATH'] || ENV['BUNDLE_GEMFILE']
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |