[英]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.