Dockerizing NestJS APP 和 MongoDB “首次连接时无法连接到服务器 [localhost:27017]”
Posted
技术标签:
【中文标题】Dockerizing NestJS APP 和 MongoDB “首次连接时无法连接到服务器 [localhost:27017]”【英文标题】:Dockerizing NestJS APP and MongoDB "failed to connect to server [localhost:27017] on first connect" 【发布时间】: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 文件中配置为在同一个网络中 【参考方案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以上是关于Dockerizing NestJS APP 和 MongoDB “首次连接时无法连接到服务器 [localhost:27017]”的主要内容,如果未能解决你的问题,请参考以下文章
Dockerizing React App:应用程序在容器内启动,但无法从暴露的端口访问
dockerizing Spring Boot 应用程序错误:错误:无效或损坏的 jarfile /app.jar
Dockerizing 一个 NodeJS 应用程序:package.json 在本地可以正常工作,但不能在容器内工作