繁体   English   中英

无法使用 Prisma 连接到在 Docker 中运行的 Postgresql 容器

[英]Can't connect using Prisma to Postgresql container running in Docker

我正在尝试在 Docker 中运行 Postgresql,并通过 Prisma 连接到它。 我已经查看了多个问题,但我看不出我正在尝试做的事情有什么问题。

我似乎无法 ping 我的 postgresql 实例,也无法连接到管理员。

人们遇到的最常见问题是使用localhost而不是 docker 图像名称。

我也尝试过禁用 firewalld,但这没有任何区别,所以我认为这也不是我的防火墙阻止了端口。

谢谢!

.env

DB_NAME=spot
DB_HOST=postgres
DB_USERNAME=spotuser
DB_PASSWORD=spotpass
DB_PORT=5432

DATABASE_URL=`postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?schema=public`

docker-compose.yml

version: '3.1'

services:

  postgres:
    image: postgres
    restart: always
    volumes:
      - ./db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=${DB_USERNAME}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    ports:
      - 5432:5432

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
❯ docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
e66b70a9ac69   adminer    "entrypoint.sh docke…"   6 minutes ago   Up 2 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   spot-spot-adminer-1
dd629496a246   postgres   "docker-entrypoint.s…"   6 minutes ago   Up 2 seconds   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   spot-spot-postgres-1

https://docs.docker.com/compose/compose-file/#expose

尝试将暴露添加到您的docker-compose.yml

version: '3.1'

services:

  postgres:
    image: postgres
    restart: always
    volumes:
      - ./db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=${DB_USERNAME}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    ports:
      - 5432:5432
    expose:
      - 5432

问题是我。 我通常有一个 VPN 运行,所以我没有考虑它,只要我禁用它。 一切都按预期进行。

但是,我确实必须使用localhost而不是postgresql作为我的DB_HOST (我最初尝试过这个但没有运气,那是当我遇到一些 SO 答案时说你需要使用容器名称而不是本地主机)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM