2

我在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等)如何在AWS Elastic Beanstalk中的多個grails環境中使用單個.war?

這裏我最好的辦法是什麼?

回答

4

事實證明,您可以通過配置的「容器」區域中的'JVM命令行選項'字段將任意參數(包括環境變量)傳遞到容器上。

-Dgrails.env=DesiredEnvironmentName 

工程就像一個魅力,我現在使用單一的.war適用於所有環境。

0

設置PARAM1到您的配置文件的名稱,

然後Config.groovy中

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

或者,你可能只是通過像存儲每個環境的不同配置數據庫動態配置插件 - http://grails.org/plugin/dynamic-config

+0

我想避免任何環境特定的配置文件(或一般的任何文件,因爲這使.war到beanstalk實例的vanilla部署複雜化) – Peter 2012-08-28 20:31:47

相關問題