Error: P1001: Can't reach database server at `localhost`:`5200`
Error: P1001: Can't reach database server at `localhost`:`5200`
我使用的技术:
- nestjs -> 用于后端
- prisma -> for orm
- postgresql -> 数据库
我正在尝试使用 Docker 运行 这些技术,但我 运行 遇到以下问题:
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
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 数据库。
Docker文件文件:
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 运行 start:prod命令在package.json文件中也对应如下:
...
"generate:prisma": "npx prisma migrate dev --name init",
"start:prod": "npm run generate:prisma && npm run dist/main",
...
不要使用localhost:5200
作为数据库地址,需要使用db:5432
.
从主机连接时使用本地主机和映射端口。您正在从桥接网络上的另一个容器连接,您需要使用服务名称和容器正在侦听的端口。
我使用的技术:
- nestjs -> 用于后端
- prisma -> for orm
- postgresql -> 数据库
我正在尝试使用 Docker 运行 这些技术,但我 运行 遇到以下问题:
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
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 数据库。
Docker文件文件:
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 运行 start:prod命令在package.json文件中也对应如下:
...
"generate:prisma": "npx prisma migrate dev --name init",
"start:prod": "npm run generate:prisma && npm run dist/main",
...
不要使用localhost:5200
作为数据库地址,需要使用db:5432
.
从主机连接时使用本地主机和映射端口。您正在从桥接网络上的另一个容器连接,您需要使用服务名称和容器正在侦听的端口。