2012-03-13 70 views
0

我已经在服务器上部署了生产实例。它的工作很好。ROR部署:分段和开发环境

这是我需要做的。 在服务器上部署临时和开发环境。 我已经在github中创建了一个分支来做到这一点。

配置 1)红宝石1.8.6
2)Rails是被vendored
3)网络服务器的Nginx和薄
4)我已经创建一个文件在/ usr /本地/ nginx的/启用的位点和在/ etc /薄
6)进行了编辑的deploy.rb和配置下已经添加dev.rb和部署文件夹
7)Capistrano的正被在服务器上使用添加的网站上可获得的文件夹
5)YML文件部署

问题: 如何从单独的github分支部署不同的生产开发环境?这会重新启动/影响当前的生产环境吗?

我想确保生产不会受到此影响。请提供一个命令列表 或教程,这将帮助我。我进入学习ROR的很早阶段,所以请点击 一点细节。非常感谢帮助。

编辑:
1)通过本地安装gem并在本地运行capify来增强项目的实力。
2)你在配置deploy.rb进行更改
3)设置:设置临时和生产
4)阶段:default_stage登台。你必须编辑这个文件,更多的自定义部署
5)在config/deploy /下:创建生产和分段“.rb”文件。将分支设置为主或任何特定的分支。将您的rails_env设置为在staging.rb中登台,并在production.rb中设置为生产。 在这些适当的文件中将deploy_to设置为xxxpath/staging和xxxpath/production。
6)帽部署将分期部署为默认由于4)
7)盖生产部署生产

回答

1

它看起来像你最的方式存在。关键是要确保Capistrano将每个分支部署到文件系统上的单独位置 - 这些站点 - 可用的文档根目录应该不同(换句话说,不要覆盖您的生产文件!)。

两种方法,如果你已经设置稳定生产,分期和开发分支,在这里使用http://help.github.com/deploy-with-capistrano/

记录的方法您可以使用此方法一次性分支部署Using capistrano to deploy from different git branches

乘客寻找文件tmp/restart.txt知道何时重新启动;这是在应用程序树下,所以应该只影响站点的特定变体。

根据您的服务器的容量,生产站点可能会因重新启动其他环境而受到短暂的性能影响。如果可以,您应该考虑为分段,测试,开发等获取单独的服务器。

+0

感谢您的答复tharrison,我没有安装乘客。你是否确定生产环境不会受到影响?我会在几个小时内给出这个镜头,所以生产上的一点压力并不重要,因为没有人会使用它。 – sunny31 2012-03-13 21:46:51

+0

如果你有单独的数据库和单独的分支签出到不同的位置,那么你应该确定。是否会出现中断取决于每个环境是否有独立的流程 - 您是否可以在不影响其他环境的情况下停下来?如果是这样,那么主要影响将是部署和Rails负载的性能影响。 – 2012-03-13 23:57:47