services: db: image: postgres:16 environment: POSTGRES_DB: app POSTGRES_USER: app POSTGRES_PASSWORD: ${DB_PASS} ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data - ./config/schema.sql:/docker-entrypoint-initdb.d/schema.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U app"] interval: 5s timeout: 5s retries: 5 app: build: . ports: - "8080:5000" env_file: config/.env depends_on: db: condition: service_healthy scheduler: build: . command: ["python", "-m", "scheduler.daemon"] env_file: config/.env depends_on: db: condition: service_healthy bot: build: . command: ["python", "-m", "bot.bot"] env_file: config/.env depends_on: app: condition: service_started volumes: pgdata: