Play framework 2.5.1 环境变量和属性替换
Play framework 2.5.1 Environment variables and property substitution
我想在 Docker 中设置一个 Play 应用程序,并想使用属性和环境变量传入数据库连接参数。
下面的方法是否有效?
play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"
mongo-async-driver {
akka {
loglevel = WARNING
}
}
mongodb {
host = ${?MONGO_HOST}
port = ${?MONGO_PORT}
user = ${?MONGO_USER}
pass = ${?MONGO_PASS}
db = ${?MONGO_DB}
uri = "mongodb://"${mongodb.user}":"${mongodb.pass}"@"${mongodb.host}":"${mongodb.port}"/"${mongodb.db}"?authMode=scram-sha1&rm.tcpNoDelay=true&rm.nbChannelsPerNode=10"
}
admindb {
host = ${?MONGO_HOST}
port = ${?MONGO_PORT}
user = ${?MONGO_USER}
pass = ${?MONGO_PASS}
db = ${?MONGO_DB}
uri = "mongodb://"${admindb.user}":"${admindb.pass}"@"${admindb.host}":"${admindb.port}"/"${admindb.db}"?authMode=scram-sha1&rm.tcpNoDelay=true&rm.nbChannelsPerNode=10"
}
我想传入以下环境变量:
- MONGO_HOST
- MONGO_PORT
- MONGO_USER
- MONGO_PASS
- MONGO_DB
并希望 HOCON 属性 替换来构造最终的 uri,在代码中我将以 mongodb.uri 和 admindb.uri 的形式访问它以获得最终值。
发现上述方法是将环境变量传递到 Play Framework 应用程序的最佳方法。
如果是docker容器,环境变量可以传入
-e KEY=VALUE
命令行参数。
这可用于为应用程序提供更动态的特性,可能用于多租户或安全分配数据库凭据等。
我想在 Docker 中设置一个 Play 应用程序,并想使用属性和环境变量传入数据库连接参数。
下面的方法是否有效?
play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"
mongo-async-driver {
akka {
loglevel = WARNING
}
}
mongodb {
host = ${?MONGO_HOST}
port = ${?MONGO_PORT}
user = ${?MONGO_USER}
pass = ${?MONGO_PASS}
db = ${?MONGO_DB}
uri = "mongodb://"${mongodb.user}":"${mongodb.pass}"@"${mongodb.host}":"${mongodb.port}"/"${mongodb.db}"?authMode=scram-sha1&rm.tcpNoDelay=true&rm.nbChannelsPerNode=10"
}
admindb {
host = ${?MONGO_HOST}
port = ${?MONGO_PORT}
user = ${?MONGO_USER}
pass = ${?MONGO_PASS}
db = ${?MONGO_DB}
uri = "mongodb://"${admindb.user}":"${admindb.pass}"@"${admindb.host}":"${admindb.port}"/"${admindb.db}"?authMode=scram-sha1&rm.tcpNoDelay=true&rm.nbChannelsPerNode=10"
}
我想传入以下环境变量:
- MONGO_HOST
- MONGO_PORT
- MONGO_USER
- MONGO_PASS
- MONGO_DB
并希望 HOCON 属性 替换来构造最终的 uri,在代码中我将以 mongodb.uri 和 admindb.uri 的形式访问它以获得最终值。
发现上述方法是将环境变量传递到 Play Framework 应用程序的最佳方法。
如果是docker容器,环境变量可以传入
-e KEY=VALUE
命令行参数。
这可用于为应用程序提供更动态的特性,可能用于多租户或安全分配数据库凭据等。