1. bubble-detector-worker exited with code 2
2. SQLAlchemy CREATE DATABASE error
3. CREATE EXTENSION error
1. Parar tudo
docker-compose down -v
2. Usar compose mínimo
cp docker-compose-minimal.yml docker-compose.yml
3. Subir apenas API + Frontend
docker-compose up -d
4. Testar
curl http://localhost:8000/health
Comentar estas linhas:
worker:
...
beat:
...
db:
...
redis:
...
CREATE DATABASE dentro de transação
Fix em backend_api.py:
ANTES (errado):
engine = create_engine(DATABASE_URL)
Base.metadata.create_all(bind=engine)
DEPOIS (correto):
from sqlalchemy.pool import NullPool
engine = create_engine(
DATABASE_URL,
poolclass=NullPool,
isolation_level="AUTOCOMMIT" # Fix para CREATE DATABASE
)
Fix em init.sql:
-- Remover CREATE DATABASE (já existe)
-- CREATE DATABASE bubbledb; <-- COMENTAR
-- Apenas criar extensões e tabelas
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TABLE IF NOT EXISTS bubble_metrics (...);
docker-compose.yml
services:
db:
# ...
healthcheck:
test: ["CMD-SHELL", "pg_isready -U bubbleuser"]
interval: 5s
timeout: 5s
retries: 5
api:
depends_on:
db:
condition: service_healthy # Espera DB estar pronto
docker-compose logs api
docker-compose logs db
docker-compose logs worker
netstat -an | grep 8000 # API
netstat -an | grep 5432 # PostgreSQL
netstat -an | grep 6379 # Redis
docker exec -it bubble-detector-db psql -U bubbleuser -d bubbledb
docker-compose down -v
docker system prune -a
docker-compose build --no-cache
docker-compose up -d
✅ API (FastAPI)
✅ Frontend (Nginx)
❌ PostgreSQL (remover)
❌ Redis (remover)
❌ Workers (remover)
✅ API
✅ Frontend
❌ PostgreSQL (ainda não)
✅ Redis (apenas cache)
❌ Workers (ainda não)
✅ API
✅ Frontend
✅ PostgreSQL
✅ Redis
✅ Workers + Beat
1. Sempre use healthchecks em depends_on 2. Não crie DB via SQLAlchemy (criar manualmente ou via init.sql) 3. Workers precisam de Celery configurado (ou remover) 4. Use AUTOCOMMIT para DDL statements
1. Serviços rodando?
docker-compose ps
2. API respondendo?
curl http://localhost:8000/health
3. Frontend acessível?
curl http://localhost:3000
4. Logs sem erros?
docker-compose logs --tail=50
Remove tudo e recomeça limpo
docker-compose down -v && \
docker system prune -af && \
cp docker-compose-minimal.yml docker-compose.yml && \
docker-compose up -d
Esperar 10s
sleep 10
Testar
curl http://localhost:8000/health
---
Resumo: Usedocker-compose-minimal.yml para começar. Adicione complexidade depois.