我在一个NX NEST+ANGULAR环境中工作,其中包含一个用于NEST和Postgres的Docker容器。CRUD操作从localhost运行到数据库容器很好,但是如果我将nest容器的请求发送到数据库容器,则会得到错误。我的root dir中的docker-复合文件配置:
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:
DATABASE_URL="postgresql://admin:admin@postgres:5432/mydb?schema=public"Dockerfile:
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"
我还是不知道我错过了什么,我在哪里做错了。任何帮助都是非常感谢的。
发布于 2022-09-05 12:11:53
您必须将两个容器保持在同一个网络中,以允许它们进行通信。更新您的docker-compose.yml文件如下所示。
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:https://stackoverflow.com/questions/73599807
复制相似问题