我有两个docker容器,一个带我的nodejs webapp,一个带mongo db。 我在mongo db容器中建立了身份验证,现在收到以下错误消息:
mongo | 2018-08-22T13:48:24.102+0000 I ACCESS [conn1] SASL SCRAM-SHA-1 authentication failed for blub on admin from client XXXXX; UserNotFound: Could not find user blub@admin
mongo | 2018-08-22T13:48:24.105+0000 I NETWORK [conn1] end connection XXXXX (0 connections now open)
app | (node:16) UnhandledPromiseRejectionWarning: MongoError: Authentication failed.
我使用此docker-compose.yml构建两个容器
version: "2"
services:
app:
container_name: app
restart: always
build: .
ports:
- "3000:3000"
links:
- mongo
mongo:
container_name: mongo
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
environment:
- MONGODB_INITDB_ROOT_USERNAME=blub
- MONGODB_INITDB_ROOT_PASSWORD=pass
我的应用程序通过以下方式与mongodb连接:
mongoose.connect("mongodb://blub:pass@mongo:27017/");
答案 0 :(得分:0)
我找到了解决方案: 我的docker-compose:
version: '2'
services:
app:
container_name: app
restart: always
build: .
ports:
- 3000:3000
links:
- mongodb
mongodb:
container_name: mongodb
image: mongo:3.4
ports:
- 27017:27017
volumes:
- ./data:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=admin123456
command: mongod
nodejs应用中的连接:mongoose.connect("mongodb://admin:admin123456@mongodb:27017/");
但是我实际上不知道为什么它不能在我的第一次尝试中起作用。