![](/img/trans.png)
[英]Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing when set environment configuration in firebase
[英]Overriding configuration with environment variables in typesafe config
如果我正確理解你的問題,答案就在這里 。 你可以做
foo: "bar"
foo: ${?FOO}
官方文檔現在非常清楚地描述它,並支持多種選擇。 這是一個簡短的總結......
最常見的方法是使用此表單:
basedir = "/whatever/whatever"
basedir = ${?FORCED_BASEDIR}
如果設置了env變量,那么它將覆蓋您的默認值,否則它將保持不變。
更方便的方法是使用JVM屬性-Dconfig.override_with_env_vars=true
來覆蓋任何配置變量。 在這種情況下,您不必創建重復的聲明。 您的env變量必須以前綴CONFIG_FORCE_
命名。 了解env var如何在文檔中配置名稱映射。 例如: CONFIG_FORCE_a_b__c___d
ab-c_d
將映射到ab-c_d
。
最后,如果您想要推出自己的映射 ,這與上面描述的選項類似,而不使用override_with_env_vars
您可以使用一些shell hacking,如下所述。
如果必須使用環境變量,並且它們的命名與配置名稱一致,則可以使用這樣的bash腳本自動從環境變量轉換為JVM cmd args。 這些-D
JVM args將覆蓋Typesafe Config值。 例:
# export my_PROP1=1
# export my_PROP2=2
#
# props=$(env | grep my_ | awk '{print "-D"$_}' ORS=' ')
#
# echo "JVM executable command is: java $props some.jar"
JVM executable command is: java -Dmy_PROP2=2 -Dmy_PROP1=1 some.jar
將大寫轉換為小寫,如果不直接映射到您的配置值,請根據需要對env變量進行子串操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.