【发布时间】:2016-07-13 14:27:31
【问题描述】:
这是我的简单场景,我有一个简单的Flaskapp,它以这种方式连接到 postgres:
SQLALCHEMY_DATABASE_URI='postgresql://username:secretpassword@postgres:5432/myproj'
我有一个简单的docker-compose.yml:
version: '2'
services:
postgres:
image: postgres:latest
volumes_from:
- data
environment:
POSTGRES_PASSWORD: secretpassword
POSTGRES_USER: username
POSTGRES_DB: myproj
ports:
- "5432:5432"
web:
build: .
volumes_from:
- app
ports:
- "5000:5000"
depends_on:
- postgres
data:
image: postgres:latest
volumes:
- /var/lib/postgresql/data
command: "true"
app:
build: .
volumes:
- .:/myproj
command: "true"
我需要使用自己制作的烧瓶脚本来为我的应用创建表格:
export FLASK_APP='./myproj/__init__.py'
flask createdbs
我已将这两个操作放在我的web 服务的Dockerfile 中,但是因为我的服务和postgres 服务有depends_on 关系,所以在构建阶段postgres db 主机不可用。
关于实现这一目标的最佳方法有什么建议吗?我想避免黑客攻击,我更愿意尊重正确的 Docker 工作流程。
【问题讨论】:
标签: postgresql python-3.x docker flask docker-compose