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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta