Barclays-banner-builder/docker-compose.yml
Vadym Samoilenko 942742181b Mount rag-corpus/ into api and worker containers
ingest_rag.py resolves path as /rag-corpus (3 levels up from /app/scripts/).
Without the mount the container sees an empty /rag-corpus directory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 12:22:03 +01:00

81 lines
2.3 KiB
YAML

services:
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_DB: ${POSTGRES_DB:-barclays_banners}
POSTGRES_USER: ${POSTGRES_USER:-banners}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-banners_dev}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-banners}"]
interval: 5s
timeout: 5s
retries: 10
# Not exposed to host — accessed via internal docker network only
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 10
# Not exposed to host — accessed via internal docker network only
api:
build: ./backend
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --proxy-headers --forwarded-allow-ips='*'
ports:
- "127.0.0.1:8010:8000" # host 8010 (8000 is occupied on this server)
env_file: .env
environment:
- DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-banners}:${POSTGRES_PASSWORD:-banners_dev}@postgres:5432/${POSTGRES_DB:-barclays_banners}
- REDIS_URL=redis://redis:6379/0
volumes:
- ./backend:/app
- ./assets:/assets:ro
- ./rag-corpus:/rag-corpus:ro
- pdf_artifacts:/artifacts
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
worker:
build: ./backend
command: rq worker --with-scheduler --url redis://redis:6379/0 banners
env_file: .env
environment:
- DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-banners}:${POSTGRES_PASSWORD:-banners_dev}@postgres:5432/${POSTGRES_DB:-barclays_banners}
- REDIS_URL=redis://redis:6379/0
volumes:
- ./backend:/app
- ./assets:/assets:ro
- ./rag-corpus:/rag-corpus:ro
- pdf_artifacts:/artifacts
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
web:
build:
context: ./frontend
target: dev
ports:
- "5174:5174" # host 5174 (5137 and 5173 nearby are occupied)
volumes:
- ./frontend:/app
- /app/node_modules
environment:
- VITE_API_BASE_URL=http://localhost:8010
volumes:
postgres_data:
redis_data:
pdf_artifacts: