我有一个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
但只有开发变量才会被设置。
答案 0 :(得分:0)
for procfile:
web: bundle exec puma -C config/puma.rb
然后在你的puma.rb文件中引用你的RACK_ENV var
应该在heroku配置中将RACK_ENV设置为production。我相信它是默认的,但你也可以设置它。通过运行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
这些是您错误地标记为测试的凭据,因为您正在考虑为您设置的服务器"测试"作为一个测试环境。"当Rails引用测试环境时,这不是Rails的意思。它表示在本地运行测试的环境。只需将这些变量放在heroku上并允许它生成。
答案 1 :(得分:0)
将您的个人资料更新为以下内容:
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
。