【问题标题】:Capistrano: deploy files other than used in developmentCapistrano:部署开发中未使用的文件
【发布时间】:2012-07-21 21:36:05
【问题描述】:

我有一个 rails 应用程序,它使用一些 bash 脚本,这些脚本在开发和生产中具有不同的值(路径)。我想使用 capistrano 使用适合生产的值来部署应用程序。 所以例如在#{Rails.root}+'script.sh':

 #!/bin/bash
 /usr/local/bin/convert  -colorspace sRGB -background transparent -font Myriad-Pro-Condensed -fill grey0 -stroke yellow -strokewidth 2 -size 640x480 -gravity $3 label:"$2" $1.png

为了生产,我需要:

 #!/bin/bash
 /usr/bin/convert  -colorspace sRGB -background transparent -font Myriad-Pro-Condensed -fill grey0 -stroke yellow -strokewidth 2 -size 640x480 -gravity $3 label:"$2" $1.png

是否有涉及在部署时动态更改文件的解决方案(使用一些 gsub 命令更改值)?

【问题讨论】:

    标签: ruby-on-rails deployment capistrano


    【解决方案1】:

    ERB 模板可能是最直接的。在模板中,您可以访问所有 Capistrano 变量,以便了解您所处的阶段等。上限代码如下所示:

    template = File.read(File.join(File.dirname(__FILE__), "templates/script.sh.erb"))
    result = ERB.new(template).result(binding)
    put result, "#{release_path}/script.sh"
    

    【讨论】:

    • 谢谢!您是否有机会指出一些解释如何在 Capistrano 中使用模板的地方?除了付费的 Railscast 之外找不到任何东西
    • 这里是一个例子:simonecarletti.com/blog/2009/06/capistrano-and-database-yml。他没有在那个简单的例子中使用它,但是您可以访问 erb 模板中的所有 capistrano 对象模型、变量等。
    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多