rag_template / docker /docker-compose.prod.yml
Guilherme Favaron
Sync: Complete project update (Phase 6) - API, Metadata, Eval, Docs
a686b1b
version: '3.8'
services:
app:
build:
context: ..
dockerfile: docker/Dockerfile.prod
ports:
- "7860:7860"
environment:
- DATABASE_URL=${DATABASE_URL}
- HF_TOKEN=${HF_TOKEN}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-}
- LLM_PROVIDER=${LLM_PROVIDER:-huggingface}
- EMBEDDING_MODEL_ID=${EMBEDDING_MODEL_ID:-sentence-transformers/all-MiniLM-L6-v2}
- TOP_K=${TOP_K:-4}
- TEMPERATURE=${TEMPERATURE:-0.3}
- MAX_TOKENS=${MAX_TOKENS:-512}
env_file:
- ../.env
restart: unless-stopped
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:7860').read()"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
depends_on:
postgres:
condition: service_healthy
networks:
- rag-network
volumes:
- app-cache:/home/appuser/.cache
postgres:
image: ankane/pgvector:latest
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
POSTGRES_DB: ${POSTGRES_DB:-ragdb}
ports:
- "${POSTGRES_PORT:-5433}:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
- ../db/init:/docker-entrypoint-initdb.d
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- rag-network
shm_size: 128mb
# Opcional: Redis para cache
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis-data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- rag-network
command: redis-server --appendonly yes
volumes:
postgres-data:
driver: local
redis-data:
driver: local
app-cache:
driver: local
networks:
rag-network:
driver: bridge