【问题标题】:Unable to Connect MongoDB with NestJS ( Docker )无法将 MongoDB 与 NestJS ( Docker ) 连接
【发布时间】:2022-01-14 18:21:49
【问题描述】:

我将我的应用程序和 mongo db 放入一个 docker 文件中,但是当我运行 docker-compose up 时,我收到错误 ERROR [MongooseModule] Unable to connect to the database。我一直在对 yml 文件进行故障排除,但没有成功。非常感谢任何帮助。

docker-compose.yml

version: '3.6'

services:
  main:
    container_name: main
    build:
      context: .
      target: development
    volumes:
      - .:/usr/src/app
    ports:
      - ${SERVER_PORT}:${SERVER_PORT}
      - 9229:9229
    command: npm run start:debug
    env_file:
      - .env
    networks:
      - webnet
    depends_on:
      - mongo_db

  mongo_db:
    container_name: mongo_db
    hostname: '${MONGO_HOST}'
    image: mongo:4.4.11-rc0-focal
    networks:
      - webnet
    environment:
      MONGO_INITDB_ROOT_USERNAME: '${MONGO_USERNAME}'
      MONGO_INITDB_ROOT_PASSWORD: '${MONGO_PASSWORD}'
      MONGO_INITDB_DATABASE: '${MONGO_DATABASE_NAME}'
    expose:
      - '27017'
networks:
  webnet:
    driver: bridge

和 mongo URI:MONGO_URI=mongodb://user:password@localhost:27017

【问题讨论】:

  • 尝试使用mongodb://user:password@mongo_db:27017,当您通过 docker-compose 运行服务时,您应该使用其内部网络
  • 感谢@JayMcDoniel 的成功,

标签: node.js mongodb docker nestjs


【解决方案1】:

当您通过 docker-compose 运行服务时,应使用内部 docker-compose 网络。每个服务的名称都是 compose 网络中的主机,因此不要使用 localhost(它是容器本身的本地主机),而应使用 mongodb://user:password@mongo_db:27017 指定 mongo_db 服务作为您尝试连接的服务

【讨论】:

    猜你喜欢
    • 2023-02-14
    • 2021-02-17
    • 2019-08-02
    • 2020-07-22
    • 1970-01-01
    • 2021-12-03
    • 2023-01-05
    • 2017-03-05
    • 2017-06-11
    相关资源
    最近更新 更多