3

我在 Elastic Beanstalk 中运行我的 Grails 应用程序的多个环境。不必为不同的环境构建和上传不同的 .war 文件将节省大量时间(我将所有环境差异作为“容器”配置区域中的系统属性传入,因此没有外部配置文件) . 根据这篇文章http://mrhaki.blogspot.ca/2011/02/grails-goodness-one-war-to-rule-them.html,可以使用单个 .war 并通过传递动态设置环境grails.env 属性,但似乎不可能这样做,因为 beanstalk 将您限制为一组预定义的命名系统属性(JDBC_CONNECTION_STRING、PARAM1、PARAM2 等)

我在这里最好的方法是什么?

4

2 回答 2

4

事实证明,您可以通过配置的“容器”区域中的“JVM 命令行选项”字段将任意参数(包括环境变量)传递给容器。

-Dgrails.env=DesiredEnvironmentName 

像魅力一样工作,我现在对所有环境都使用一个 .war 。

于 2012-08-28T17:46:52.240 回答
0

将 PARAM1 设置为配置文件的名称,

然后在 Config.groovy

grails.config.locations = [ System.getProperty("PARAM1") ]

或者,您可以通过动态配置插件 - http://grails.org/plugin/dynamic-config为数据库中的每个环境存储不同的配置

于 2012-07-28T02:11:01.383 回答