【发布时间】:2015-10-22 11:02:05
【问题描述】:
我在docker中有一个springboot应用容器和mongodb容器。
docker run -p 27017:27017 -d --name myMongo mongo
所以我先运行 mongodb 容器,然后再运行 springboot 容器。
docker run -p 8080:8080 --name mySpringApp --link myMongo:mongodb mySpringApp
之后我想在我的 springboot 应用程序中获取该环境变量。
MONGODB_PORT=tcp://172.17.0.5:27017
MONGODB_PORT_5432_TCP=tcp://172.17.0.5:27017
MONGODB_PORT_5432_TCP_PROTO=tcp
MONGODB_PORT_5432_TCP_PORT=27017
MONGODB_PORT_5432_TCP_ADDR=172.17.0.5
在 application.properties 文件中,我通常喜欢 ip 和 port 的常量配置,所以它连接 mongodb 容器没有任何问题。
spring.data.mongodb.host=172.17.0.56
spring.data.mongodb.port=27017
但是在那个 application.properties 文件中,我有一种方法可以获取该环境变量,顺便说一句,我尝试了#{systemEnvironment['MONGODB_PORT_5432_TCP_ADDR']},就像这个符号一样。但我的应用无法连接到 mongodb 容器。对于这种情况有什么好的做法吗,我也尝试使用@Value 注释来实现AbstractMongoConfiguration get systemEnvironment variables。
【问题讨论】:
标签: java spring docker spring-boot