【发布时间】:2020-06-29 10:53:24
【问题描述】:
我想要一个 python 烧瓶应用程序,它与 postgresql 数据库 (psycopg2) 一起运行。所以我制作了这个 docker-compose 文件:
version: "3"
services:
web:
depends_on:
- database
container_name: web
build:
context: "."
dockerfile: "docker/Dockerfile.web"
ports:
- 5000:5000
volumes:
- database:/var/run/postgresql
database:
container_name: database
environment:
POSTGRES_PASSWORD: "password"
POSTGRES_USER: "user"
POSTGRES_DB: "products"
image: postgres
expose:
- 5432
volumes:
- database:/var/run/postgresql
volumes:
database:
在我的 app.py 中,我尝试像这样连接到 postgres:
conn = psycopg2.connect(database="products", user="user", password="password", host="database", port="5432")
当我运行 docker-compose up 时,我收到以下错误:
"服务器是否在主机 "数据库" (172.21.0.2) 上运行并接受端口 5432 上的 TCP/IP 连接?"
我不知道我在哪里弄错了。
- 容器“数据库”公开其端口 5432。
- 两个容器都在同一个网络上,即“web_app_default”。
- 套接字文件存在于“web”容器的
/var/run/postgresql目录中。
有什么想法吗?
感谢您的回复,祝您有美好的一天。
【问题讨论】:
标签: python postgresql docker docker-compose psycopg2