我在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等)
这里最好的方法是什么?
答案 0 :(得分:4)
事实证明,您可以通过配置的“容器”区域中的“JVM命令行选项”字段将任意参数(包括环境变量)传递给容器。
-Dgrails.env=DesiredEnvironmentName
像魅力一样,我现在在所有环境中使用单个.war。
答案 1 :(得分:0)
将PARAM1设置为配置文件的名称,
然后在Config.groovy
grails.config.locations = [ System.getProperty("PARAM1") ]
或者,您可以通过动态配置插件 - http://grails.org/plugin/dynamic-config
为数据库中的每个环境存储不同的配置