【问题标题】:Should I include .ruby-version and .ruby-gemset when deploying a rails app?部署 Rails 应用程序时是否应该包含 .ruby-version 和 .ruby-gemset?
【发布时间】:2015-09-27 01:34:23
【问题描述】:

我刚刚遵循了这个RailsApps 安装/设置教程,它使用 RVM 并创建了一个 .ruby-version 和一个 .ruby-gemset 指定 Ruby 版本和特定于项目的 gemset。

我已经阅读了post,了解如何处理这些文件以进行版本控制。

我的问题是如何部署到托管平台,例如 Heroku?它们指向您的 git 存储库,其中可能包含也可能不包含这些文件。部署时签入.ruby-version是否仍然可以?

例如,Heroku docs 表示 Ruby 版本是通过 Gemfile 或环境变量指定的。所以如果像 Heroku 这样的平台尊重这些 RVM 生成的文件,我有点困惑。

注意事项:

  • Ruby v2.2.3
  • RVM v1.26.11

【问题讨论】:

  • 我认为heroku 不会关注gemset 规范——你的gemset 不在heroku 上,所以gemset 的名称没有任何意义。如果您使用的是 bundler(如果您使用的是 Rails,则不需要它)。您的 Gemfile.lock 完成了 gemset 为 heroku 部署所需做的所有事情,并准确指定需要安装什么版本的 gem。

标签: ruby-on-rails ruby heroku rvm


【解决方案1】:

每个the docs Heroku 会在几个地方寻找你的 Ruby 版本: 1) 宝石文件 2) 一个名为 CUSTOM_RUBY_VERSION 的环境变量

我更喜欢在我的 Gemfile 中指定 Ruby 版本。

所以,Heroku 应该忽略 .ruby-version。您在 Gemfile 中指定的 Ruby 应该可能与 .ruby-version 中指定的版本相匹配

作为一般规则,我会将 .ruby-version 检查到源代码管理中。

【讨论】:

  • 好的。所以我猜确实有两个文件指定了 ruby​​ 版本:本地/团队环境的 .ruby-version 和生产环境(Heroku)的 Gemfile。我正在听取您的建议,以使它们保持匹配。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2016-01-06
相关资源
最近更新 更多