這裏我簡單的場景,我有一個簡單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工作流程。