![](/img/trans.png)
[英]Connect nodejs App in one docker container to mongodb in another on Docker Swarm
[英]Connect MongoDB container with nodejs app
我有兩個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/");
我找到了一個解決方案:我的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 mongoose.connect("mongodb://admin:admin123456@mongodb:27017/");
但是我實際上不知道為什么我的第一次嘗試不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.