OpenShift NextGen和Rails - 发生未处理的低级错误

时间:2016-12-13 19:55:59

标签: ruby-on-rails ruby openshift production

我是OpenShift的新手,不久之前我设法使用Next Gen控制台部署了一个基本的Rails应用程序。 我对应用程序进行了一些调整,即用

创建了一个家庭控制器
`rails g controller home index`

并通过将根路由设置为config/routes.rb而不是root 'home#index'来更新get 'home/index'文件。 现在,当在开发环境中运行时,本地rails服务器正确指向索引页面,因此完全没有问题。 但是,当我将更新的内容推送到git远程存储库并使用

启动新的构建时
oc start-build <app>

并使用OpenShift生产环境重新加载页面,但没有显示任何内容

An unhandled lowlevel error occurred. The application logs may have details.

编辑:命令oc logs dc/<app>将此视为“根错误”:

#<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>

然后,生产部分中的config/secrets.yml显示为:

# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

现在我想这与在OpenShift环境中设置环境变量有关。我找到了命令

oc env dc/<app> <ENV_VARIABLE>=<value>
来自this guide

。这是正确的吗?如果是,如何生成正确的SECRET_KEY_BASE值?

当然,非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:1)

解决。我发现rake secret命令最终会为您生成哈希,然后使用oc env dc/<app> SECRET_KEY_BASE=<hash>并使用oc start-build <app>

重建应用程序