【问题标题】:ROR deployment: Staging and Development environmentsROR 部署:登台和开发环境
【发布时间】:2023-03-16 07:56:01
【问题描述】:

我已经在服务器上部署了一个生产实例。它运行良好。

这是我需要做的。 在服务器上部署暂存和开发环境。 我已经在 github 中创建了一个分支来执行此操作。

配置 1) Ruby 1.8.6
2) Rails 正在出售
3) 网络服务器 Nginx 和 Thin
4) 我已经在 /usr/local/nginx/sites-enabled 和 sites-available 文件夹下创建了一个文件
5) 在 /etc/thin
下添加 yml 文件 6) 对 deploy.rb 进行了编辑,并在 config 和 deploy 文件夹下添加了 dev.rb
7) Capistrano 正在服务器上用于部署

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

我想确保制作不会因此受到影响。请提供命令列表 或对我有帮助的教程。我正处于学习 ROR 的早期阶段,所以请 一些细节。非常感谢您的帮助。

编辑:
1)通过在本地安装gem并在本地运行capify来Capify项目。
2) 在 config
下对 deploy.rb 进行更改 3) 设置 :stages 与分期和生产
4) 将 :default_stage 设置为 staging .. 您必须更多地编辑此文件以自定义您的部署
5) 在 config/deploy/ 下:创建生产和暂存“.rb”文件。将分支设置为 master 或任何特定分支。将您的 rails_env 设置为 staging.rb 中的 staging 和 production.rb 中的生产。 在相应的文件中将 deploy_to 设置为 xxxpath/staging 和 xxxpath/production。
6) 由于 4)
,cap deploy 将默认部署在 staging 中 7) 为生产设置上限生产部署

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    看起来您已经完成了大部分任务。关键是要确保 Capistrano 将每个分支部署到文件系统上的单独位置——站点可用的文档根目录应该不同(换句话说,不要覆盖您的生产文件!)。

    两种方法,如果你设置了稳定的生产、暂存和开发分支,使用这里记录的方法http://help.github.com/deploy-with-capistrano/

    您可以将此方法用于一次性分支部署Using capistrano to deploy from different git branches

    Passenger 查找文件 tmp/restart.txt 以了解何时重新启动;这是在应用程序树下,所以应该只影响网站的特定变体。

    根据您服务器的容量,生产站点可能会因重新启动另一个环境而受到短暂的性能影响。如果有能力,您应该考虑使用单独的服务器来进行登台、测试、开发等。

    【讨论】:

    • 感谢 tharrison 的回复,我没有安装乘客。你还确定生产环境不会受到影响吗?我会在几个小时内试一试,所以对生产的一点压力不会有太大影响,因为没有人会使用它。
    • 如果您有单独的数据库和单独的分支检出到不同的位置,那么您应该没问题。是否会有中断取决于每个环境是否有单独的进程——你能在不影响其他环境的情况下停止一个进程吗?如果是这样,那么主要影响将是部署和 Rails 负载的性能影响。
    猜你喜欢
    • 1970-01-01
    • 2018-09-16
    • 2011-05-17
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多