44 lines
987 B
YAML
44 lines
987 B
YAML
version: "3.9"
|
|
services:
|
|
db:
|
|
image: pgvector/pgvector:pg16
|
|
environment:
|
|
POSTGRES_USER: user
|
|
POSTGRES_PASSWORD: pass
|
|
POSTGRES_DB: news
|
|
volumes: ["pgdata:/var/lib/postgresql/data"]
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
|
|
backend:
|
|
build: ./backend
|
|
env_file: .env
|
|
depends_on: [db, redis]
|
|
volumes: ["./data:/data", "./backend:/app"]
|
|
ports: ["8080:8000"]
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 8000
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices: [{capabilities: ["gpu"]}] # GPU acceleration
|
|
|
|
worker:
|
|
build: ./backend
|
|
env_file: .env
|
|
depends_on: [db, redis]
|
|
volumes: ["./data:/data", "./backend:/app"]
|
|
command: celery -A app.tasks.celery_app worker --loglevel=info --concurrency=2
|
|
|
|
frontend:
|
|
build: ./frontend
|
|
ports: ["3000:3000"]
|
|
volumes:
|
|
- "./frontend:/app"
|
|
- "/app/node_modules"
|
|
command: npm run dev
|
|
depends_on: [backend]
|
|
|
|
volumes:
|
|
pgdata:
|