【问题标题】:How to use a single .war for several grails environments in AWS Elastic Beanstalk?如何在 AWS Elastic Beanstalk 中为多个 grails 环境使用单个 .war?
【发布时间】:2012-07-23 03:31:16
【问题描述】:

我在 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 等)

我最好的方法是什么?

【问题讨论】:

    标签: grails amazon-web-services environment-variables amazon-elastic-beanstalk


    【解决方案1】:

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

    -Dgrails.env=DesiredEnvironmentName 
    

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

    【讨论】:

      【解决方案2】:

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

      然后在 Config.groovy 中

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

      或者,您可以通过动态配置插件 - http://grails.org/plugin/dynamic-config

      为数据库中的每个环境存储不同的配置

      【讨论】:

      • 我想避免使用任何特定于环境的配置文件(或任何一般文件,因为这会使 .war 到 beanstalk 实例的普通部署变得复杂)
      猜你喜欢
      • 2019-09-01
      • 2023-03-17
      • 2020-10-05
      • 2012-09-24
      • 2017-07-21
      • 2021-09-29
      • 2020-05-29
      • 2020-02-05
      • 2015-01-22
      相关资源
      最近更新 更多