Usando docker-compose para crear tablas en la base de datos postgresql
Estoy usando docker-compose para implementar una aplicación web Python Flask de múltiples contenedores. Tengo dificultades para comprender cómo crear tablas en la base de datos postgresql durante la compilación, así que no tengo que agregarlas manualmente con psql.
Mi archivo docker-compose.yml es:
web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
volumes:
- /usr/src/flask-app/static
env_file: .env
command: /usr/local/bin/gunicorn -w 2 -b :8000 app:app
nginx:
restart: always
build: ./nginx/
ports:
- "80:80"
volumes:
- /www/static
volumes_from:
- web
links:
- web:web
data:
restart: always
image: postgres:latest
volumes:
- /var/lib/postgresql
command: "true"
postgres:
restart: always
image: postgres:latest
volumes_from:
- data
ports:
- "5432:5432"
No quiero tener que ingresar psql para escribir:
CREATE DATABASE my_database;
CREATE USER this_user WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE "my_database" to this_user;
\i create_tables.sql
Agradecería orientación sobre cómo crear las tablas.