docker-compose环境会覆盖jar中的变量,docker环境变量和jar中的变量是如何映射的?
Posted
技术标签:
【中文标题】docker-compose环境会覆盖jar中的变量,docker环境变量和jar中的变量是如何映射的?【英文标题】:docker-compose environment will cover variables in jar, how are docker environment variable and variable in jar mapped? 【发布时间】:2017-12-24 00:53:23 【问题描述】:例如,在 docker-compose.yml 中设置environment: EUREKA_PORT=8762
。
并且jar中的变量$eureka.port=8761
不会生效。
为什么environment: EUREKA_PORT=8762
会覆盖$eureka.port=8761
?
docker环境变量和jar中的变量是如何映射的?
【问题讨论】:
我不确定你是如何在你的java代码中转储$eureka.port
的值来说明它是8761
的值。 $eureka.port
对我来说看起来像壳`。无论如何,我不认为EUREKA_PORT
与eureka.port
相同。我可能是错的。
【参考方案1】:
您的思维方式完全正确-EUREKA_PORT=8762
将通过环境设置eureka.port
。它是这样工作的:
如果您使用环境变量而不是系统属性,大多数操作系统不允许 句点分隔 键名,但您可以使用 下划线 代替(例如
SPRING_CONFIG_NAME
而不是spring.config.name
)。
直接取自spring documentation。
【讨论】:
以上是关于docker-compose环境会覆盖jar中的变量,docker环境变量和jar中的变量是如何映射的?的主要内容,如果未能解决你的问题,请参考以下文章