【问题标题】:Can't reach database server at `postgres`:`5432`无法在 `postgres` 访问数据库服务器:`5432`
【发布时间】:2022-08-08 07:25:24
【问题描述】:

尝试 dockerize、nestjs 和 Prisma。 Nest 正确响应 curl 请求,我可以使用此命令很好地连接到 Postgres 服务器

--- docker compose exec postgres psql -h localhost -U postgres -d webapp_dev

一切正常,直到我尝试运行

npx prisma migrate dev --name init 

然后我回来

Error: P1001: Can\'t reach database server at `postgres`:`5432`

这是我的代码:

码头工人-compose.yml

version: \"2\"
services:
  backend:
    build: .
    ports:
      - 3000:3000
      - 9229:9229 # debugger port
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    command: yarn start:debug
    restart: unless-stopped
    depends_on:
      - postgres
    environment:
      DATABASE_URL: postgres://postgres@postgres/webapp_dev
      PORT: 8000
  postgres:
    image: postgres:14-alpine
    ports:
      - 5432:5432
    environment:
      POSTGRES_DB: webapp_dev
      POSTGRES_HOST_AUTH_METHOD: trust

Docker文件

FROM node:16

# Create app directory, this is in our container
WORKDIR /usr/src/app

# Install app dependencies
# Need to copy both package and lock to work
COPY package.json yarn.lock ./
RUN yarn install

COPY prisma/schema.prisma ./prisma/
RUN npx prisma generate

# Bundle app source
COPY . .


RUN yarn build

EXPOSE 8080
CMD [\"node\": \"dist/main\"]

.env

//.env 
DATABASE_URL=postgres://postgres@postgres/webapp_dev
  • 码头工人不太热,所以请随意抨击我。我只是被困在谷歌炼狱自动取款机
  • 如果您在构建过程中运行 npx prisma migrate 命令(我在您发布的文件中看不到它),那么 Postgres 那时不可用。 Postgres 仅在运行时可用。
  • 在我已经启动 docker 容器之后,我正在终端中运行它
  • 我想到了。在 .env 文件中将 DATABASE_URL=postgres://postgres@postgres/webapp_dev 更改为 DATABASE_URL=postgres://postgres@localhost/webapp_dev 对我有用
  • 我的整个团队仍然有这个问题。完全无法找到问题的根本原因。有时有效,有时无效。我建议如果你让它工作,不要重建你的 db 或 docker 图像。这个问题很烦人而且断断续续。

标签: postgresql docker nest prisma migrate


【解决方案1】:

不确定这是否是唯一的问题,但您的数据库 url 中不包含数据库密码

DATABASE_URL: postgres://postgres:mysecret@postgres/webapp_dev?schema=public

【讨论】:

    猜你喜欢
    • 2022-07-13
    • 2021-09-29
    • 2022-11-30
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2019-07-01
    • 2021-12-03
    相关资源
    最近更新 更多