如何在AWS Elastic Beanstalk中为几个grails环境使用单个.war?
我在Elastic Beanstalk中运行了几个Grails应用程序环境。不必为不同的环境构建和上载不同的.war文件,这将节省大量时间(我将所有环境差异作为系统属性传递到“容器”配置区域,因此没有外部配置文件)。根据本文,可以使用单个.war并通过传递grails.env属性来动态设置环境,但这似乎是不可能的,因为beanstalk将您限制为一组预定义的命名系统属性(JDBC_CONNECTION_STRING、PARAM1、PARAM2等)如何在AWS Elastic Beanstalk中为几个grails环境使用单个.war?,grails,amazon-web-services,environment-variables,amazon-elastic-beanstalk,Grails,Amazon Web Services,Environment Variables,Amazon Elastic Beanstalk,我在Elastic Beanstalk中运行了几个Grails应用程序环境。不必为不同的环境构建和上载不同的.war文件,这将节省大量时间(我将所有环境差异作为系统属性传递到“容器”配置区域,因此没有外部配置文件)。根据本文,可以使用单个.war并通过传递grails.env属性来动态设置环境,但这似乎是不可能的,因为beanstalk将您限制为一组预定义的命名系统属性(JDBC_CONNECTION_STRING、PARAM1、PARAM2等) 我的最佳方法是什么?将PARAM1设置为配置文件
我的最佳方法是什么?将PARAM1设置为配置文件的名称 然后在Config.groovy中
grails.config.locations = [ System.getProperty("PARAM1") ]
或者,您也可以通过类似于dynamic config插件的方式,在数据库中为每个环境存储不同的配置-将PARAM1设置为配置文件的名称 然后在Config.groovy中
grails.config.locations = [ System.getProperty("PARAM1") ]
或者,您可以通过类似于dynamic config插件的东西在数据库中存储每个环境的不同配置-事实证明,您可以传递任意参数,包括环境变量,通过配置的“容器”区域中的“JVM命令行选项”字段连接到容器
-Dgrails.env=DesiredEnvironmentName
工作起来很有魅力,我现在为所有环境使用一个.war。事实证明,您可以通过配置“容器”区域中的“JVM命令行选项”字段将任意参数(包括环境变量)传递到容器
-Dgrails.env=DesiredEnvironmentName
工作起来很有魅力,我现在对所有环境都使用一个.war。我想避免使用任何特定于环境的配置文件(或者一般的任何文件,因为这会使.war到beanstalk实例的普通部署复杂化),我想避免使用任何特定于环境的配置文件(或者任何文件,因为这会使.war在beanstalk实例中的常规部署复杂化)