Skip to content

IKauedev/lummyedu-docker-dev

Repository files navigation

🐳 Lummy Docker Environment

📋 Arquitetura

Este docker-compose orquestra todo o ecossistema Lummy:

🗄️ Bancos de Dados

  • mysqldb-backend (porta 3306) - MySQL para Lummy Backend
  • mysqldb-ia (porta 3307) - MySQL para Lummy IA

🚀 Aplicações

  • lummy-backend (porta 8080) - Spring Boot Backend Principal
  • lummy-ia (porta 8000) - FastAPI IA Service

📊 Monitoramento

  • prometheus (porta 9090) - Coleta de métricas
  • grafana (porta 3000) - Visualização de dashboards

🌐 Rede

Todos os serviços estão conectados na mesma rede lummy-network, permitindo comunicação entre eles usando os nomes dos containers.

🎯 Comandos Principais

Iniciar todos os serviços

docker-compose up -d

Iniciar com rebuild (quando houver alterações no código)

docker-compose up -d --build

Ver logs de todos os serviços

docker-compose logs -f

Ver logs de um serviço específico

docker-compose logs -f lummy-backend
docker-compose logs -f lummy-ia

Parar todos os serviços

docker-compose down

Parar e remover volumes (⚠️ APAGA OS DADOS!)

docker-compose down -v

Rebuild de um serviço específico

docker-compose up -d --build lummy-backend
docker-compose up -d --build lummy-ia

Verificar status dos serviços

docker-compose ps

Acessar shell de um container

docker exec -it lummy-backend bash
docker exec -it lummy-ia bash

🧰 Scripts de Automação

Scripts prontos foram organizados na pasta scripts/powershell:

  • .\scripts\powershell\start-all.ps1 — faz build e inicia todo o stack
  • .\scripts\powershell\stop-all.ps1 — encerra todos os serviços
  • .\scripts\powershell\status.ps1 — exibe containers e health checks
  • .\scripts\powershell\logs.ps1 [serviço] — acompanha logs em tempo real
  • .\scripts\powershell\rebuild.ps1 <serviço> — recria um serviço específico
  • .\scripts\powershell\clean-rebuild.ps1 — limpeza completa com rebuild (⚠️ apaga dados)

🔗 URLs de Acesso

Aplicações

Monitoramento

Bancos de Dados

  • MySQL Backend: localhost:3306
  • MySQL IA: localhost:3307

🔧 Configurações de Ambiente

Variáveis de Ambiente

As variáveis de ambiente são definidas:

  • No próprio docker-compose.yml
  • No arquivo .env.development (para lummy-ia)

Comunicação entre Serviços

Os serviços podem se comunicar usando os nomes dos containers:

  • http://lummy-backend:8080
  • http://lummy-ia:8000

🐛 Debug

Debug Remoto

  • Lummy Backend: Porta 5005 (Java Debug)
  • Lummy IA: Porta 5678 (Python debugpy)

Configurar Debug no VS Code

Adicione ao .vscode/launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "Debug Lummy Backend (Docker)",
      "request": "attach",
      "hostName": "localhost",
      "port": 5005
    },
    {
      "type": "java",
      "name": "Debug LummyEduBackend (Docker)",
      "request": "attach",
      "hostName": "localhost",
      "port": 5006
    },
    {
      "type": "python",
      "name": "Debug Lummy IA (Docker)",
      "request": "attach",
      "connect": {
        "host": "localhost",
        "port": 5678
      },
      "pathMappings": [
        {
          "localRoot": "${workspaceFolder}",
          "remoteRoot": "/app"
        }
      ]
    }
  ]
}

📦 Volumes Persistentes

Os dados dos bancos de dados são persistidos em volumes Docker:

  • lummy-mysql-backend-data
  • lummy-mysql-ia-data
  • lummy-grafana-data

Limpar volumes (⚠️ APAGA TODOS OS DADOS!)

docker-compose down -v
docker volume prune

🔍 Troubleshooting

Container não inicia

# Ver logs detalhados
docker-compose logs lummy-backend

# Verificar saúde dos containers
docker-compose ps

Problemas de conexão com banco

# Verificar se o MySQL está rodando
docker-compose ps mysqldb-backend

# Acessar MySQL diretamente
docker exec -it lummy-mysql-backend mysql -uroot -p1234 -e "SHOW DATABASES;"

Rebuild completo (limpa tudo e reconstrói)

docker-compose down -v
docker-compose build --no-cache
docker-compose up -d

Verificar conectividade de rede

# De dentro do container lummy-ia, testar conexão com backend
docker exec -it lummy-ia curl http://lummy-backend:8080

📝 Notas Importantes

  1. Ordem de inicialização: O docker-compose gerencia automaticamente a ordem através de depends_on e healthcheck

  2. Hot Reload: Os volumes mapeiam o código local para dentro dos containers, permitindo desenvolvimento com hot reload

  3. Porta 3306: A porta padrão do MySQL (3306) está mapeada para o backend. As outras usam 3307 e 3308

  4. Ajustar paths: Certifique-se que os paths dos Dockerfiles estão corretos:

    • Lummy Backend: ../../docker/Dockerfile
    • Lummy IA: ../../docker/dev/Dockerfile
    • LummyEduBackend: ../../lummyeduback-end/Dockerfile

🚀 Quick Start

# 1. Navegue até a pasta docker
cd d:\lummyedu\docker

# 2. Inicie todos os serviços
docker-compose up -d

# 3. Acompanhe os logs
docker-compose logs -f

# 4. Acesse as aplicações
# - Backend: http://localhost:8080
# - IA API: http://localhost:8000/docs
# - Grafana: http://localhost:3000

📚 Recursos Adicionais

About

This is the lummyedu docker repository where you configure the entire application startup part.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors