fix: make docker compose build and start the API

The image context was backend/, so COPY frontend/ failed. Build from the
repo root, place Python modules on the import path, and pin packages that
exist on PyPI. The web process no longer loads the LLM at startup.
This commit is contained in:
lgcosta committed 2026-11-01 12:00:08 -03:00
1 parent 67739dcf7e
commit 7af7ba530d
19 files changed
+342 -250

No files matched your search

+44 -26
View File
@@ -1,8 +1,6 @@
version: '3.8'
services:
qdrant:
image: qdrant/qdrant:latest
image: docker.io/qdrant/qdrant:latest
container_name: espiritismo-qdrant
ports:
- "6333:6333"
@@ -11,7 +9,7 @@ services:
restart: unless-stopped
redis:
image: redis:7-alpine
image: docker.io/library/redis:7-alpine
container_name: espiritismo-redis
ports:
- "6379:6379"
@@ -20,52 +18,71 @@ services:
restart: unless-stopped
web:
build: ./backend
build:
context: .
dockerfile: backend/Dockerfile
container_name: espiritismo-web
ports:
- "8000:8000"
volumes:
- ./PDF:/app/uploads:ro
- ./backend/schedules.json:/app/schedules.json
- ./PDF:/app/books:ro
- uploads_data:/app/uploads
- ./data/schedules.json:/app/schedules.json
- ./backend/models:/app/models
environment:
- QDRANT_URL=http://qdrant:6333
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}
QDRANT_URL: http://qdrant:6333
CELERY_BROKER_URL: redis://redis:6379/0
CELERY_RESULT_BACKEND: redis://redis:6379/0
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:-}
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-}
GPT4ALL_MODEL: /app/models/llama-3.2-3b-instruct-q4_0.gguf
BOOKS_DIR: /app/books
UPLOAD_DIR: /app/uploads
SCHEDULES_PATH: /app/schedules.json
depends_on:
- qdrant
- redis
restart: unless-stopped
celery:
build: ./backend
build:
context: .
dockerfile: backend/Dockerfile
container_name: espiritismo-celery
command: celery -A app.tasks.celery_tasks worker --loglevel=info
volumes:
- ./PDF:/app/uploads:ro
- ./backend/schedules.json:/app/schedules.json
- ./PDF:/app/books:ro
- uploads_data:/app/uploads
- ./data/schedules.json:/app/schedules.json
- ./backend/models:/app/models
environment:
- QDRANT_URL=http://qdrant:6333
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}
QDRANT_URL: http://qdrant:6333
CELERY_BROKER_URL: redis://redis:6379/0
CELERY_RESULT_BACKEND: redis://redis:6379/0
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:-}
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-}
GPT4ALL_MODEL: /app/models/llama-3.2-3b-instruct-q4_0.gguf
BOOKS_DIR: /app/books
UPLOAD_DIR: /app/uploads
SCHEDULES_PATH: /app/schedules.json
depends_on:
- qdrant
- redis
restart: unless-stopped
celery-beat:
build: ./backend
build:
context: .
dockerfile: backend/Dockerfile
command: celery -A app.tasks.celery_tasks beat --loglevel=info
volumes:
- ./backend/schedules.json:/app/schedules.json
- ./data/schedules.json:/app/schedules.json
environment:
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}
CELERY_BROKER_URL: redis://redis:6379/0
CELERY_RESULT_BACKEND: redis://redis:6379/0
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:-}
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-}
SCHEDULES_PATH: /app/schedules.json
depends_on:
- redis
restart: unless-stopped
@@ -73,3 +90,4 @@ services:
volumes:
qdrant_data:
redis_data:
uploads_data: