### 语言识别 若要支持平台的 一键部署 功能,代码的根目录下必须有 Gemfile 文件,即使没有任何 gem 依赖,也需要一个空的 Gemfile。 针对不同的ruby web开发框架有如下识别方式: * 源码根目录存在 config.ru 文件,会被识别为 Rack 应用。 * 源码跟目录存在 config/environment.rb 文件,会被识别为Rails 2 应用。 * 源码根目录存在 config/application.rb文件且文件中包含Rails::Application 字符串,会被识别为Rails 3/Rails 4 应用。 ### 运行环境 bundler的版本是平台用来管理和运行 Ruby 应用的,用户无法指定版本。 目前平台使用 Bundler 1.7.12 版本。 ### 环境变量 ruby应用在好雨云平台运行时,下列环境变量将被设置: * GEM_PATH => vendor/bundle/#{RUBY_ENGINE}/#{RUBY_ABI_VERSION} * LANG => en-us * PATH => bin:vendor/bundle/#{RUBY_ENGINE}/#{RUBY_ABI_VERSION}/bin:/usr/local/bin:/usr/bin:/bin * GEM_PATH 被设置为 bundler gem vendor 目录 ### 构建(build) 当应用部署时,会触发构建行为,这时 RAILS_ENV 或 RACK_ENV 变量被设置为 production 。Rails 4.1+ 版本 可以通过DATABASE_URL环境变量设置database.yml文件中的 url 来配置数据库。目前好雨云平台还未支持该特性,后续会支持。 更多关于数据库的配置参见:`Rails应用概述`中的数据库配置部分 ### 默认的 Ruby 版本 系统默认会使用 Ruby 2.0.0。当然,你也可以自己指定一个要使用的版本,我们支持大部分的 ruby 版本。 ### 支持的运行时环境 #### MRI: * 1.8.7 : patchlevel 376, Rubygems : 1.8.24 * 1.9.2 : patchlevel 327, Rubygems : 1.3.7.1 * 1.9.3 : patchlevel 547, Rubygems : 1.8.23.2 * 2.0.0 : patchlevel 576, Rubygems : 2.0.14 * 2.1.6 : patchlevel 336, Rubygems : 2.2.2 * 2.2.2 : patchlevel 95, Rubygems: ; 2.4.5 `注意:Ruby 1.8.7 和 Ruby 1.9.2 官方已经停止支持,不再提供更新,不推荐使用`。 #### JRuby: * 1.7.20, Ruby 版本: [1.9.3], Java 版本:1.7.0_45-b31 ### 可用的运行时环境 一些其它版本的 JRuby 也在支持范围内。 #### JRuby: * 1.7.1, Ruby 版本: [1.8.7, 1.9.3], Java 版本: 1.7.0_25-b30 * 1.7.2, Ruby 版本: [1.8.7, 1.9.3], Java 版本: 1.7.0_25>b30 * 1.7.3, Ruby 版本: [1.8.7, 1.9.3], Java 版本: 1.7.0_25-b30 * 1.7.4, Ruby 版本: [1.8.7, 1.9.3], Java 版本: 1.7.0_45-b31 * 1.7.5, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.6, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.8, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.9, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.10, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.11, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.12, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.13, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.14, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.15, Ruby 版本: [1.8.7, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.16, Ruby 版本: [1.8.7, 2.0.0 (experimental)], Java 版本: 1.7.0_45-b31 * 1.7.17, Ruby 版本: [1.8.7, 1.9.3], Java 版本: 7u45 (cedar), 8u40 * 1.7.18, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 7u45 (cedar), 8u40 * 1.7.19, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 7u79, 8u40 * 1.7.20, Ruby 版本: [1.8.7, 1.9.3, 2.0.0 (experimental)], Java 版本: 7u79, 8u40 * 9.0.0.0.pre1, Ruby 版本: [2.2.0], Java 版本: 8u40 (cedar-14) * 9.0.0.0.pre2, Ruby 版本: [2.2.2], Java 版本: 8u40 (cedar-14) #### 选择Ruby版本 在 Gemfile 里指定 Ruby 版本 ~~~ source "https://ruby.taobao.org" ruby "1.9.3" ~~~ 注意 >#####由于国外的gem源速度比较慢,推荐使用淘宝的gem源 如果要指定非 MRI 的 ruby 引擎,需要使用 :engine 和 :engine_version 选项。你可以通过下面这行指定 JRuby : `ruby "1.9.3", :engine ="jruby", :engine_version ="1.7.8"` 也可以通过在程序中执行以下 Ruby 代码指定版本 ~~~ ruby ENV['CUSTOM_RUBY_VERSION'] || '2.0.0' ~~~