【问题标题】:How do you access rails_env from the Cap deploy command?如何从 Cap deploy 命令访问 rails_env?
【发布时间】:2014-04-11 17:58:43
【问题描述】:

deploy.rb 中,我相信:rails_env 通常由您的Capfile 中的require 'capistrano/rails' 设置。我正在使用 rails,但没有使用内置的资产管道,因此,不要使用 capistrano/rails,并且在暂存部署和生产部署之间切换时,不得不在 deploy.rb 中手动设置 :rails_env。这似乎很愚蠢,因为执行cap staging deploycap production deploy 时总是包含环境。我发布了这个问题,因为它似乎是一个相当常见的痛点,但解决方案很简单,但经过大量谷歌搜索后,我空手而归。因此,我深入研究了Capistrano 3.1.0 源代码,以了解如何访问在命令行中输入的阶段变量,并将跟进一个简短的答案,进行一些解释。

【问题讨论】:

    标签: capistrano capistrano3


    【解决方案1】:

    简单的答案是在deploy.rb 的顶部附近添加以下行:

    set :rails_env, fetch(:stage)

    变量:stage 被设置在capistrano/setup 中,这在您的Capfile 中是必需的。此脚本为config/deploy 中定义的每个阶段创建 rake 任务。在 rake 任务的定义中,您会发现以下内容:set(:stage, stage.to_sym),它是来自您的 cap staging deploycap production deploy 命令的 stage/rails_env 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 2013-03-10
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多