首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法到达‘`postgres`’:‘5432’的数据库服务器

无法到达‘`postgres`’:‘5432’的数据库服务器
EN

Stack Overflow用户
提问于 2022-09-04 13:29:42
回答 1查看 118关注 0票数 0

我在一个NX NEST+ANGULAR环境中工作,其中包含一个用于NEST和Postgres的Docker容器。CRUD操作从localhost运行到数据库容器很好,但是如果我将nest容器的请求发送到数据库容器,则会得到错误。我的root dir中的docker-复合文件配置:

代码语言:javascript
复制
version: '3.8'
services:
  nest-api:
    container_name: nest-api
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3333:3333

  postgres:
    image: postgres:13.5
    container_name: postgres
    restart: always
    environment:
      - POSTGRES_USER=admin
      - POSTGRES_PASSWORD=admin
    volumes:
      - postgres:/var/lib/postgresql/data
    ports:
      - '5432:5432'

volumes:
  postgres:

networks:
  nestjs-crud:

同时,.env文件中的数据库URL:

代码语言:javascript
复制
DATABASE_URL="postgresql://admin:admin@postgres:5432/mydb?schema=public"

Dockerfile:

代码语言:javascript
复制
FROM node:14
WORKDIR /workspace
COPY . .
COPY /prisma ./prisma/
RUN npm install
EXPOSE 3333
EXPOSE 9229

CMD [  "npm", "run", "start:migrate:dev" ]

我的package.json配置如下:"start:migrate:dev": "prisma migrate deploy && nx serve"

我还是不知道我错过了什么,我在哪里做错了。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2022-09-05 12:11:53

您必须将两个容器保持在同一个网络中,以允许它们进行通信。更新您的docker-compose.yml文件如下所示。

代码语言:javascript
复制
version: '3.8'
services:
  nest-api:
    container_name: nest-api
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3333:3333
    networks:
      - nestjs-curd

  postgres:
    image: postgres:13.5
    container_name: postgres
    restart: always
    environment:
      - POSTGRES_USER=admin
      - POSTGRES_PASSWORD=admin
    volumes:
      - postgres:/var/lib/postgresql/data
    ports:
      - '5432:5432'
    networks:
      - nestjs-crud

volumes:
  postgres:

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

https://stackoverflow.com/questions/73599807

复制
相关文章

相似问题

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