+-
java – 将db容器与spring boot连接起来并获取环境变量的Docker
我在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 app中获取环境变量.

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获取systemEnvironment变量.

最佳答案
我的建议是根据环境变量和属性丢弃IP.

--link myMongo:mongodb

Links myMongo container to host ‘mongodb’. This manages docker inside your host config.

现在按如下方式调整属性:

spring.data.mongodb.host=mongodb
spring.data.mongodb.port=27017

Now there is no need to manage IPs inside the container.

点击查看更多相关文章

转载注明原文:java – 将db容器与spring boot连接起来并获取环境变量的Docker - 乐贴网