jav*_*900 2 mongodb docker spring-boot docker-compose application.properties
我有以下docker compose文件,用于Spring boot container连接到 a 的 a mongoDB container:
#
# APIs
#----------------------------------------------
pokerstats:
image: pokerstats
container_name: pokerstats
ports:
- 8080:8080
depends_on:
- db
#
# Utilities
#----------------------------------------------
db:
image: mongo
container_name: mongo
volumes:
- ./database:/data
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: pokerStats
Run Code Online (Sandbox Code Playgroud)
在我的春季靴子中,application.properties我有:
server.port=8080
spring.main.allow-bean-definition-overriding=true
spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=pokerStats
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 Postman 到达端点时,出现以下错误:
{
"timestamp": "2020-04-07T17:39:19.129+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}",
"path": "/rounds"
}
Run Code Online (Sandbox Code Playgroud)
请注意,在我将以下内容添加到我的 docker compose 文件之前,这一切正常:
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: pokerStats
Run Code Online (Sandbox Code Playgroud)
我能够通过添加以下内容来解决该问题:
应用程序属性:
spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats?authSource=admin
spring.data.mongodb.authentication-database = admin
spring.data.mongodb.database=pokerStats
Run Code Online (Sandbox Code Playgroud)
我相信:?authSource=admin需要添加到 mongo uri 的末尾。
| 归档时间: |
|
| 查看次数: |
6152 次 |
| 最近记录: |