运行 我的 Rails 应用程序如何在 Heroku 中设置环境?
How do I set the environment in Heroku when running my Rails app?
我有一个 Rails 4.2.5 应用程序,我刚刚部署到 Heroku。我想知道如何设置我的 Rails 应用程序运行的环境。我想将环境设置为测试,但现在它正在设置为开发。根据 Heroku 的文档,我在项目的根目录下创建了一个名为“Procfile”的文件,并向其中添加了这一行
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-test}
但我的应用程序仍在开发模式下部署。我知道这是因为我通过文件“./config/environment_variables.yml”设置了一些环境变量,它看起来像
development:
GOOGLE_CLIENT_ID: 425025269574-o5ejue1pgtsjoid0f0k8r7lcksfse6hk.apps.googleusercontent.com
GOOGLE_SECRET: 16ckoTU_RbRKkdxv7_wkZnw8
FACEBOOK_KEY: "6574234667329742"
FACEBOOK_SECRET: 690e7faeb05199e5392892d397b79f8e
test:
GOOGLE_CLIENT_ID: 425025269574-gkcj8t19palgj34e5an4gj3mk68grpeg.apps.googleusercontent.com
GOOGLE_SECRET: mokumLI9XdD8f10M6oamj7Jx
FACEBOOK_KEY: "8877114738693318"
FACEBOOK_SECRET: 779102b0e08e4374ca7c6986924bcf9b7
production:
GOOGLE_CLIENT_ID: 425025269574-gkcj8t19palgj34e5an4gj3mk68grpeg.apps.googleusercontent.com
GOOGLE_SECRET: mokumLI9XdD8f10M6oamj7Jx
FACEBOOK_KEY: "8877114738693318"
FACEBOOK_SECRET: 779102b0e08e4374ca7c6986924bcf9b7
但只有开发变量正在设置。
对于您的 procfile:
web: bundle exec puma -C config/puma.rb
然后在您的 puma.rb 文件中引用您的 RACK_ENV 变量
RACK_ENV 应该在您的 heroku 配置中设置为生产环境。我相信这是默认设置,但您也可以设置它。通过 运行ning heroku 配置检查。
如果没有设置运行:
heroku config:set RACK_ENV=production
编辑:您实际上并没有尝试改变环境。或者你不应该。根据您的意见,您需要在 heroku 服务器上执行此操作:
heroku config:set GOOGLE_CLIENT_ID=425025269574-gkcj8t19palgj34e5an4gj3mk68grpeg.apps.googleusercontent.com GOOGLE_SECRET=mokumLI9XdD8f10M6oamj7Jx FACEBOOK_KEY="8877114738693318" FACEBOOK_SECRET=779102b0e08e4374ca7c6986924bcf9b7
这些是您错误标记为测试的凭据,因为您认为为 "testing" 设置的服务器是 "test environment." 这不是 Rails 的意思当它引用测试环境时。这意味着 运行 在本地进行测试的环境。只需将这些变量放在 heroku 上并使其投入生产即可。
将您的个人资料更新为以下内容:
web: bundle exec puma -C config/puma.rb
并将RAILS_ENV
设置为test
如下:
heroku config:set RAILS_ENV=test
如果您还没有修改您的 config/puma.rb
那么它应该具有以下内容:
environment ENV.fetch("RAILS_ENV") { "development" }
依赖于RAILS_ENV
,而不是RACK_ENV
。
我有一个 Rails 4.2.5 应用程序,我刚刚部署到 Heroku。我想知道如何设置我的 Rails 应用程序运行的环境。我想将环境设置为测试,但现在它正在设置为开发。根据 Heroku 的文档,我在项目的根目录下创建了一个名为“Procfile”的文件,并向其中添加了这一行
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-test}
但我的应用程序仍在开发模式下部署。我知道这是因为我通过文件“./config/environment_variables.yml”设置了一些环境变量,它看起来像
development:
GOOGLE_CLIENT_ID: 425025269574-o5ejue1pgtsjoid0f0k8r7lcksfse6hk.apps.googleusercontent.com
GOOGLE_SECRET: 16ckoTU_RbRKkdxv7_wkZnw8
FACEBOOK_KEY: "6574234667329742"
FACEBOOK_SECRET: 690e7faeb05199e5392892d397b79f8e
test:
GOOGLE_CLIENT_ID: 425025269574-gkcj8t19palgj34e5an4gj3mk68grpeg.apps.googleusercontent.com
GOOGLE_SECRET: mokumLI9XdD8f10M6oamj7Jx
FACEBOOK_KEY: "8877114738693318"
FACEBOOK_SECRET: 779102b0e08e4374ca7c6986924bcf9b7
production:
GOOGLE_CLIENT_ID: 425025269574-gkcj8t19palgj34e5an4gj3mk68grpeg.apps.googleusercontent.com
GOOGLE_SECRET: mokumLI9XdD8f10M6oamj7Jx
FACEBOOK_KEY: "8877114738693318"
FACEBOOK_SECRET: 779102b0e08e4374ca7c6986924bcf9b7
但只有开发变量正在设置。
对于您的 procfile:
web: bundle exec puma -C config/puma.rb
然后在您的 puma.rb 文件中引用您的 RACK_ENV 变量
RACK_ENV 应该在您的 heroku 配置中设置为生产环境。我相信这是默认设置,但您也可以设置它。通过 运行ning heroku 配置检查。
如果没有设置运行:
heroku config:set RACK_ENV=production
编辑:您实际上并没有尝试改变环境。或者你不应该。根据您的意见,您需要在 heroku 服务器上执行此操作:
heroku config:set GOOGLE_CLIENT_ID=425025269574-gkcj8t19palgj34e5an4gj3mk68grpeg.apps.googleusercontent.com GOOGLE_SECRET=mokumLI9XdD8f10M6oamj7Jx FACEBOOK_KEY="8877114738693318" FACEBOOK_SECRET=779102b0e08e4374ca7c6986924bcf9b7
这些是您错误标记为测试的凭据,因为您认为为 "testing" 设置的服务器是 "test environment." 这不是 Rails 的意思当它引用测试环境时。这意味着 运行 在本地进行测试的环境。只需将这些变量放在 heroku 上并使其投入生产即可。
将您的个人资料更新为以下内容:
web: bundle exec puma -C config/puma.rb
并将RAILS_ENV
设置为test
如下:
heroku config:set RAILS_ENV=test
如果您还没有修改您的 config/puma.rb
那么它应该具有以下内容:
environment ENV.fetch("RAILS_ENV") { "development" }
依赖于RAILS_ENV
,而不是RACK_ENV
。