You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中Nest.js的TypeORM无法与MongoDB认证连接问题

问题:Docker容器内Nest.js的TypeORM无法与MongoDB完成认证

示例代码

docker-compose.yml

version: '3'

services:
  mongodb:
    container_name: rosie-mongodb-1
    image: mongo
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: ###REDACTED FOR SECURITY###
      MONGO_INITDB_ROOT_PASSWORD: ###REDACTED FOR SECURITY###
      MONGODB_DATABASE: "rosie"
    networks:
      - rosie-net

  nest-backend:
    build:
      context: ./backend
      dockerfile: Dockerfile
    ports:
      - "4000:4000"
    volumes:
      - ./backend:/usr/src/app
    networks:
      - rosie-net


# Rest of File

app.module.ts

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { DataSource } from 'typeorm';
import { EntitiesModule } from './entities/entities.module';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mongodb',
      url: 'mongodb://###REDACTED FOR SECURITY###:###REDACTED FOR SECURITY###@mongodb:27017/rosie',
      synchronize: true,
    }),
    EntitiesModule,
  ],
})
export class AppModule {
  constructor(private dataSource: DataSource) {}
}

Mongo容器中的认证错误

Unable to connect to the database. Retrying (1)...
2023-08-07 19:36:55 MongoServerError: Authentication failed.
2023-08-07 19:36:55     at Connection.onMessage (/usr/src/app/node_modules/mongodb/src/cmap/connection.ts:413:18)
2023-08-07 19:36:55     at MessageStream.<anonymous> (/usr/src/app/node_modules/mongodb/src/cmap/connection.ts:243:56)
2023-08-07 19:36:55     at MessageStream.emit (node:events:513:28)
2023-08-07 19:36:55     at processIncomingData (/usr/src/app/node_modules/mongodb/src/cmap/message_stream.ts:193:12)
2023-08-07 19:36:55     at MessageStream._write (/usr/src/app/node_modules/mongodb/src/cmap/message_stream.ts:74:5)
2023-08-07 19:36:55     at writeOrBuffer (node:internal/streams/writable:392:12)
2023-08-07 19:36:55     at _write (node:internal/streams/writable:333:10)
2023-08-07 19:36:55     at MessageStream.Writable.write (node:internal/streams/writable:337:10)
2023-08-07 19:36:55     at Socket.ondata (node:internal/streams/readable:766:22)
2023-08-07 19:36:55     at Socket.emit (node:events:513:28)

已尝试的操作

  • 改用单独配置参数设置认证信息:
imports: [
    TypeOrmModule.forRoot({
      type: 'mongodb',
      host: '###REDACTED###',
      port: 27017,
      username: '###REDACTED###',
      password: '###REDACTED###',
      database: 'rosie',
      synchronize: true,
    }),
    EntitiesModule,
  ],
  • 使用URI字符串配置连接
  • 通过MongoDB Compass测试认证,可正常连接
  • 多次重建并重启容器确保配置生效

内容的提问来源于stack exchange,提问作者ChaosWraith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:55:13