这里我简单的场景,我有一个简单Flask
应用程序,连接到一个Postgres是这样的:如何初始化数据卷容器上的数据库?
SQLALCHEMY_DATABASE_URI='postgresql://username:[email protected]: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
我在的Dockerfile
把这些2操作我的web
服务,但因为我的服务和postgres
服务有depends_on
关系,所以postgres数据库主机在构建阶段不可用。
任何有关实现此目标的最佳方法的建议?我想避免黑客入侵,我宁愿尊重正确的Docker工作流程。