【问题标题】:How to avoid shared bundle folders during deployment如何在部署期间避免共享捆绑文件夹
【发布时间】:2013-03-25 17:07:21
【问题描述】:

我们正在使用 capistrano 来部署我们的 rails 应用程序,并且该应用程序的开发/生产版本使用 shared/bundle 文件夹。有没有办法防止创建共享/捆绑并要求 capistrano 在不同阶段使用单个 gemset?

【问题讨论】:

    标签: ruby-on-rails capistrano rvm-capistrano


    【解决方案1】:

    设置bundle_dir 对你有用吗?

    set :bundle_dir, "/my/bundle/path"
    

    我认为默认情况下它设置为:

    set :bundle_dir, File.join(fetch(:shared_path), 'bundle')
    

    【讨论】:

    • 不,不会,我们遇到了问题,因为多个环境共享同一个包。我更喜欢使用单独的 rvm gemsets,不确定如何使用 capistrano 集成它。
    【解决方案2】:

    当你说阶段时,你的意思是你在同一个盒子上有不同的环境,并且正在使用 capistrano/multistage?

    如果是这样,为您的应用程序的每个阶段指定不同的名称将分隔共享目录。

    在 deploy/development.rb 中

    set :application, "myapp-dev"
    

    在 deploy/production.rb 中

    set :application, "myapp-prod"
    

    【讨论】:

    • 是的,我们有,但他们都使用相同的共享包,这是问题的根源。
    • 在开发和生产 capistrano 多阶段配置文件中设置不同的 bundle_dir 参数。
    猜你喜欢
    • 1970-01-01
    • 2013-11-21
    • 2015-05-27
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多