Implantação e Docker

O Menthor é implantado como uma API FastAPI conteinerizada, projetada para rodar em Máquinas Virtuais Linux utilizando Docker Engine e NGINX.

Nota

Os valores de porta utilizados nesta documentação (como 8000) são fictícios e exemplificativos. Deve-se utilizar uma porta disponível e de acordo com as políticas de rede da infraestrutura.

Ambiente de Servidor

  • Runtime: Uvicorn (dentro do container).

  • Orquestração: Docker Engine.

  • Proxy Reverso: NGINX (recomendado para gerir SSL e porta 80/443).

Fluxo de Implantação (Step-by-Step)

### 1. Construir a Imagem A partir da raiz do projeto, execute o build utilizando o Dockerfile específico para o sandbox:

docker build -f Dockerfile.service.sandbox -t menthor-service:latest .

### 2. Executar o Container Ao rodar o container, é vital sincronizar as pastas de datasets e logs para persistência de dados.

docker run -d \
  --name menthor-sandbox \
  -p 8000:8000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /root/menthor_bin/datasets:/app/datasets \
  -v /root/menthor_bin/logs:/app/logs \
  menthor-service:latest

Perigo

Configuração Crítica: Você deve alterar a variável SANDBOX_CONTAINER_NAME no arquivo tools/sandbox_runner_patch.py para que o nome seja idêntico ao valor usado na flag --name do comando acima. Caso contrário, as ferramentas de sandbox não conseguirão se comunicar.

Manutenção e Monitorização

Utilize os comandos abaixo para gerir o ciclo de vida da aplicação no servidor:

Verificar status:
docker ps
Consultar Logs:
docker logs menthor-sandbox
Acesso Interativo:
docker exec -it menthor-sandbox /bin/bash
Remoção Limpa:
docker stop menthor-sandbox && docker rm menthor-sandbox

Considerações de NGINX

Certifique-se de que a configuração do NGINX aponta o proxy_pass para a porta escolhida e que o firewall do servidor permite o tráfego necessário.