Epic_1_Sprint_1 Build Docker Compose stack - robbiemu/aclarai GitHub Wiki
Tarefa: Construir stack Docker Compose com Neo4j, Postgres, aclarai-core, vault-watcher e scheduler
Descrição
Desenvolver e configurar um stack Docker Compose completo para o aclarai, incluindo todos os serviços de backend necessários: Neo4j (banco de dados de grafos), Postgres com pgvector (banco de dados vetorial), aclarai-core (serviço principal), vault-watcher (observador de arquivos) e scheduler (agendador de tarefas).
Escopo
Incluído
- Criação do arquivo docker-compose.yml com definição de todos os serviços
- Configuração do Neo4j para armazenamento de grafos de conhecimento
- Configuração do Postgres com extensão pgvector para armazenamento de embeddings
- Definição dos serviços aclarai-core, vault-watcher e scheduler
- Configuração de volumes para persistência de dados
- Configuração de redes para comunicação entre serviços
- Definição de variáveis de ambiente e dependências entre serviços
- Documentação da arquitetura e uso do stack Docker Compose
Excluído
- Implementação do código interno dos serviços (aclarai-core, vault-watcher, scheduler)
- Configuração de serviços de frontend (será feita em tarefa separada)
- Configuração de produção com SSL/TLS e autenticação avançada
- Otimizações de desempenho específicas para ambientes de produção
- Configuração de backup e recuperação de desastres
Critérios de Aceitação
- Arquivo docker-compose.yml válido e funcional
- Todos os serviços definidos iniciam corretamente
- Neo4j acessível na porta 7474 (HTTP) e 7687 (Bolt)
- Postgres com pgvector acessível na porta 5432
- Volumes configurados corretamente para persistência de dados
- Redes definidas para isolamento e comunicação adequada entre serviços
- Variáveis de ambiente configuradas via arquivo .env
- Dependências entre serviços definidas corretamente
- Documentação clara sobre como iniciar e usar o stack
Dependências
- Definição da arquitetura do sistema
- Requisitos específicos de cada serviço (portas, volumes, variáveis de ambiente)
- Docker e Docker Compose instalados no ambiente de desenvolvimento
Entregáveis
- Arquivo docker-compose.yml completo
- Arquivo .env de exemplo com variáveis necessárias
- Documentação de uso do stack Docker Compose
- Scripts auxiliares para inicialização e gerenciamento (se necessário)
Estimativa de Esforço
- 2 dias de trabalho
Riscos e Mitigações
- Risco: Conflitos de porta com serviços existentes
- Mitigação: Documentar claramente as portas utilizadas e permitir customização via .env
- Risco: Problemas de permissão com volumes Docker
- Mitigação: Configurar permissões adequadas e documentar requisitos
- Risco: Incompatibilidade entre versões de serviços
- Mitigação: Fixar versões específicas de imagens Docker para garantir compatibilidade
Notas Técnicas
- Utilizar a versão mais recente estável do Docker Compose (3.9+)
- Configurar healthchecks para garantir inicialização correta dos serviços
- Considerar o uso de redes Docker nomeadas para melhor isolamento
- Implementar restart policies adequadas para cada serviço
- Configurar volumes nomeados para facilitar backup e persistência
- Considerar o uso de multi-stage builds para reduzir tamanho de imagens