簡體   English   中英

將MongoDB容器與Node.js應用程序連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM