【发布时间】:2011-11-03 16:35:10
【问题描述】:
我正在尝试使用 Capistrano 部署我的 RoR 应用程序。一切都很好,直到我在 Capistrano 配置中引入了另一个角色,即 :web 角色,这应该是我的 HTTP/反向代理服务器。
我的理解是 :app 角色应该是指应用程序服务器(瘦、杂种等),而 :web 角色应该是指前端服务器(nginx、apache),所以我对这个选择感到很困惑在所有角色上运行所有任务,即使 capistrano 默认将它们分开。
现在我的问题是我无法使 deploy:update_code 仅在具有 :app 角色的服务器上运行,例如,capistrano 错误,因为它试图在我的 Web 服务器上运行 update_code,我什至没有安装 git(我不需要它......)。有没有人成功做到这一点?有人可以分享代码吗?
TIA,NGW
【问题讨论】:
-
我很困惑......关于 :web 角色的文档说“这被认为是你的网络服务器(阅读:Apache / nginx / etc.)”并且关于应用程序角色说“这些假设是您的应用程序服务器,在 Ruby 环境中,这意味着类似于 Mongrel 或 Mongrel 集群;它也可以是您的乘客服务器。”。为什么默认运行 update_code、symlink 以及基本上所有部署都以完全相同的方式在 :web 和 :app 上运行?我正在尝试覆盖所有默认任务以仅在 :app 上运行,但它是 PITA :) 我做错了什么?
标签: ruby-on-rails ruby-on-rails-3 deployment capistrano