Docker用Spring Boot链接数据库容器并获取环境变量
我在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:27017MONGODB_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.56spring.data.mongodb.port=27017
但是在那个application.properties文件中,我有一种获取该环境变量的方法,但我尝试过使用
#{systemEnvironment['MONGODB_PORT_5432_TCP_ADDR']}
这种表示法。但是我的应用程序无法连接到mongodb容器。有没有一种方法可以解决这种情况,我也尝试实现AbstractMongoConfiguration
带有@Value
注释的get
systemEnvironment变量。
回答:
我的建议是完全放弃环境变量和属性中的IP。
--link myMongo:mongodb
将myMongo容器链接到主机“ mongodb”。这将在主机配置中管理docker。
现在,如下调整属性:
spring.data.mongodb.host=mongodbspring.data.mongodb.port=27017
现在,无需管理容器内的IP。
以上是 Docker用Spring Boot链接数据库容器并获取环境变量 的全部内容, 来源链接: utcz.com/qa/432549.html