【发布时间】:2013-02-06 08:14:12
【问题描述】:
可以使用bees config:set -ac account 命令设置全局配置参数,但是否也可以通过某种方式判断全局参数是指哪个环境?
例如,我有 2 个环境,生产和演示。我想将所有应用程序部署到生产环境的数据库 URI 参数设置为相同,并为演示环境设置另一个值。我当然可以为每个应用程序单独设置参数,但我有很多应用程序,最好只设置一次,因为对于部署在相同环境的所有应用程序,它的值相同。
【问题讨论】:
可以使用bees config:set -ac account 命令设置全局配置参数,但是否也可以通过某种方式判断全局参数是指哪个环境?
例如,我有 2 个环境,生产和演示。我想将所有应用程序部署到生产环境的数据库 URI 参数设置为相同,并为演示环境设置另一个值。我当然可以为每个应用程序单独设置参数,但我有很多应用程序,最好只设置一次,因为对于部署在相同环境的所有应用程序,它的值相同。
【问题讨论】:
我倾向于将不同的环境作为不同的应用程序 - 这意味着我可以让它们全部运行(这意味着在我部署时自然会应用不同的环境设置)。
模式的另一个想法(我没有使用过) - 在您引用特定于环境的 env vars/系统属性的地方,您使用另一个 var 的前缀,即 env 名称。
例如
DB = System.getProperty(System.getProperty("ENV_NAME") + "_DB");
因此,您可以拥有遵循以下模式的环境变量/属性:
bees config:set -ac blah PROD_DB=<url here>
bees config:set -ac blah DEV_DB=<url here>
bees config:set -ac blah ENV_NAME=DEV #this is the default
然后为一个应用设置一个特定的环境:
bees config:set -a appId ENV_NAME=PROD
因此,无论您将 ENV_NAME 设置为什么,都意味着它会选择适用的“一组”变量。
只是一个想法(虽然从未使用过)。
【讨论】:
配置参数是每个应用程序 ID,而不是每个帐户,因此您无法为所有应用程序设置一次。需要配置:设置你已经部署的所有应用
【讨论】: