docker compose postgresql在python应用程序中的实现
我正在构建一个Python应用程序,并试图在Docker内部运行它。(我的作品完全是虚拟的,没有Docker。) 因此,我的应用程序由config.py文件和其他文件组成,这些文件可以让一切正常工作,但在本例中并不重要 我的配置文件如下所示:docker compose postgresql在python应用程序中的实现,python,postgresql,url,docker,docker-compose,Python,Postgresql,Url,Docker,Docker Compose,我正在构建一个Python应用程序,并试图在Docker内部运行它。(我的作品完全是虚拟的,没有Docker。) 因此,我的应用程序由config.py文件和其他文件组成,这些文件可以让一切正常工作,但在本例中并不重要 我的配置文件如下所示: SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://gimtest:gimtest@localhost:5432/gimtest-users" version: '2' services: web:
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://gimtest:gimtest@localhost:5432/gimtest-users"
version: '2'
services:
web:
build: ./web
ports:
- "5000:5000"
depends_on:
- postgres
links:
- postgres
- elastic
expose:
- 5000
command:
"python run.py"
postgres:
image: postgres:9.5
expose:
- 5432
environment:
POSTGRES_USER: "gimtest"
POSTGRES_PASSWORD: "gimtest"
POSTGRES_DB: "gimtest-users"
elastic:
image: elasticsearch:2.3
应用程序要求在应用程序启动之前运行postgresql,所以我尝试使用Docker Compose。我的docker-compose.yml如下所示:
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://gimtest:gimtest@localhost:5432/gimtest-users"
version: '2'
services:
web:
build: ./web
ports:
- "5000:5000"
depends_on:
- postgres
links:
- postgres
- elastic
expose:
- 5000
command:
"python run.py"
postgres:
image: postgres:9.5
expose:
- 5432
environment:
POSTGRES_USER: "gimtest"
POSTGRES_PASSWORD: "gimtest"
POSTGRES_DB: "gimtest-users"
elastic:
image: elasticsearch:2.3
现在的问题是我无法连接到postgresql数据库。(至少compile是这么说的,因为它从python应用程序中抛出一个错误,即指定的url上没有运行postgresql(在config.py中)
如何修复url以使其正常工作?如果您可以手动连接到postges db,然后尝试向您的应用程序添加延迟。我无法连接到docker postgres。我可以连接到单独的psql程序。延迟应根据定义进行修复。不过,感谢您的思考。
dependens\u on
将不会等到db更新它准备好了。看,如果数据库需要时间准备好,您需要添加一个手动延迟。另外,您的数据库连接应该是到postgres
,而不是localhost
好的,我现在明白了。我不明白连接到postgres而不是localhost的部分…那么URL应该是什么样子的?只需将localhost
更改为postgres