【发布时间】:2012-10-19 19:10:53
【问题描述】:
我试图从 heroku 应用程序配置中读取 Grails 环境以进行战争构建,这可能吗,在这种情况下该怎么做?它是否设置在 ENV 变量中?
【问题讨论】:
我试图从 heroku 应用程序配置中读取 Grails 环境以进行战争构建,这可能吗,在这种情况下该怎么做?它是否设置在 ENV 变量中?
【问题讨论】:
不,这是不可能的。 Buildpacks 独立于配置运行。 (为了说服自己,运行heroku config:set 并观察输出:没有slug 编译器。)这与12-Factor App 的Build, Release, Run 方面一致,它严格区分构建(slug 编译器和buildpack),发布(将构建附加到其配置)并运行(为给定版本启动 dynos)。
通常的解决方案是让您的 buildpack 发出读取环境并在运行时适当操作的文件。例如,Rails 从config/database.yml 读取数据库配置,而 Heroku 在ENV['DATABASE_URL'] 中指定了这一点。因此,buildpack 会生成一个文件using this template,这会使 Rails 使用配置中指定的数据库,从而允许更改配置而无需重新构建整个应用程序。
【讨论】: