【问题标题】:Dockerizing NestJS APP and MongoDB "failed to connect to server [localhost:27017] on first connect"Dockerizing NestJS APP 和 MongoDB “首次连接时无法连接到服务器 [localhost:27017]”
【发布时间】:2020-02-14 12:55:02
【问题描述】:

我想dockerize我的nestJS APP和MongoDB,但我收到这个错误:第一次连接时无法连接到服务器[localhost:27017]

码头文件

FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "run", "start:prod"]

docker-compose.yml:

version: '3'
services:
  app:
    container_name: erpcore
    restart: always
    build: .
    ports:
      - '3000:3000'
    links:
      - erpdb
  erpdb:
    container_name: erpdb
    image: mongo

数据库.providers.ts

import * as mongoose from 'mongoose';

export const databaseProviders = [
    {
        provide: 'DATABASE_CONNECTION',
        useFactory: async (): Promise<typeof mongoose> =>
            await mongoose.connect('mongodb://erpdb:27017/erp'),
    },
];

谢谢

【问题讨论】:

  • 你 docker-compose 只是在旋转一个图像。您是否已经在 mongo 中创建了 erp db。
  • 通常nestJS应用程序会自动创建erp db
  • @SamirAFALLAH,确保你的 nestJs 应用程序和 MongoDB 在你的 docker-compose 文件中配置为在同一个网络中

标签: node.js docker mongoose docker-compose nestjs


【解决方案1】:

也许您的应用在 MongoDB 之前启动。尝试在您的应用服务上添加depends_on: erpdb

【讨论】:

  • 是添加,但不起作用 *** 版本:'3' 服务:erpdb:容器名称:erpdb 图像:mongo app:容器名称:erpcore 重启:始终构建:。端口:-'3000:3000'depends_on:-erpdb ***
  • MongooseModule 添加了重试选项来处理这种情况。看来您没有使用 MongooseModule,但您可以查看源代码以了解它是如何实现的:https://github.com/nestjs/mongoose/blob/master/lib/mongoose-core.module.ts
猜你喜欢
  • 2021-12-30
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 2021-02-16
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多