如何在 capistrano 中使用 --trace 运行 rake?
我希望 capistrano 使用 --trace 调用 rake,这样我就可以找出它失败的原因。我该怎么做? set :rake 'rake --trace'
不起作用。
I want capistrano to invoke rake with --trace so I can figure out why it's failing. How do I do this? set :rake 'rake --trace'
doesn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我发现的最好方法是:
这样您就不会覆盖 rake 变量。
例如,如果您使用bundler,则在之前设置为:
“bundle exec rake”
,在之后设置为:
“bundle exec rake --trace”
The best way I found is:
This way you don't overwrite the rake variable.
For example if you use bundler this is set before to:
"bundle exec rake"
and after to:
"bundle exec rake --trace"
您的自定义任务很可能没有使用
rake
变量,而是使用硬编码 rake,这是一个示例:这是硬编码的,不会关心您的设置
set :rake, 'rake --trace'
,这是正确的方法:或者,简写:
您可以在 Capistrano 源代码中实际看到这一点,在默认配方实际调用
rake< 的地方/代码>,在迁移任务中:https://github。 com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb#L387
The chances are your custom tasks aren't using the
rake
variables, but instead hard-coding rake, here's an example:This is hard-coded, and won't care about your setting
set :rake, 'rake --trace'
, here's the correct way:Or, shorthand:
You can see this in practice in the Capistrano source code, in the one place that the default recipes actually invoke
rake
, in the migrations task: https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb#L387