首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误: P1001:无法到达``localhost`‘:`5200’的数据库服务器

错误: P1001:无法到达``localhost`‘:`5200’的数据库服务器
EN

Stack Overflow用户
提问于 2022-02-24 12:25:08
回答 2查看 10.8K关注 0票数 5

我使用的技术:

  • nestjs ->用于后端
  • prisma -> for orm
  • postgresql ->数据库

我试图使用Docker运行这些技术,但遇到了以下问题:

代码语言:javascript
运行
复制
prisma schema loaded from prisma/schema.prism
Datasource "db": PostgreSQL database "nestjs", schema "public" at "localhost:5200"
Error: P1001: Can't reach database server at `localhost`:`5200`
Please make sure your database server is running at `localhost`:`5200`

docker-compose.dev.yml

代码语言:javascript
运行
复制
version: '3.7'
services:
  db:
    image: postgres:12.9
    ports:
      - 5200:5432
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: 123
      POSTGRES_DB: nestjs
    volumes:
      - database-data:/var/lib/postgresql/data
    networks:
      - sai
    restart: always

  test:
    container_name: test
    image: test
    build:
      context: .
      target: development
      dockerfile: Dockerfile
    command: npm run start:prod
    ports:
      - 3000:3000
      - 9229:9229
    networks:
      - sai
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    links:
      - db
    depends_on:
      - db
    restart: always

networks:
  sai:
    driver: bridge

volumes:
  database-data:

Nestjs在端口5200上看不到我的locahost数据库。

Dockerfile文件:

代码语言:javascript
运行
复制
FROM node:latest as development
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=development
COPY . .
RUN npm run build


FROM node:latest as production
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=production
COPY . .
COPY --from=development /usr/src/app/prisma ./prisma
COPY --from=development /usr/src/app/dist ./dist
EXPOSE 3000
CMD npm run start:prod

npm :prod命令也对应于package.json文件中的以下内容:

代码语言:javascript
运行
复制
...
  "generate:prisma": "npx prisma migrate dev --name init",
  "start:prod": "npm run generate:prisma && npm run dist/main",
...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-24 12:31:13

而不是使用localhost:5200作为数据库的地址,您需要使用db:5432

本地主机和映射端口在从主机连接时使用。您正在从桥网络上的另一个容器连接,在那里您需要使用服务名称和容器正在监听的端口。

票数 10
EN

Stack Overflow用户

发布于 2022-11-22 23:53:15

不要使用localhost:5200作为数据库的地址,您需要使用db:5432。

汉斯·基利安

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71251937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档