🐛 Descrição do Bug A funcionalidade de exportação de relatórios em PDF falha quando a aplicação é executada dentro do container Docker. O backend retorna um erro 500 (Internal Server Error) porque a biblioteca puppeteer (usada pelo html-pdf-node) não consegue iniciar o processo do navegador Chromium, pois as dependências de sistema necessárias não estão instaladas na imagem node:22-alpine.
🔄 Passos para Reproduzir Inicie o projeto usando Docker (docker-compose up –build).
Acesse a aplicação Frontend em http://localhost:3001/mapa.
Selecione qualquer região (ex: Nordeste) ou estado no mapa para carregar os dados.
Clique no botão “BAIXAR RELATÓRIO REGIONAL (PDF)” (ou estadual/municipal).
Observe que o download não inicia e o console do navegador exibe erro 500.
✅ Comportamento Esperado Ao clicar no botão de download, o Backend deveria gerar o arquivo PDF dinamicamente usando os dados do Supabase e enviar o arquivo (application/pdf) para o navegador, iniciando o download automaticamente.
💥 Comportamento Atual Frontend: O console do navegador exibe GET http://localhost:3000/api/report/… 500 (Internal Server Error).
Backend (Terminal): O log exibe a exceção:
Plaintext
Error: Failed to launch the browser process! spawn /app/node_modules/puppeteer/.local-chromium/…/chrome ENOENT Isso indica que o binário do navegador não foi encontrado ou não pode ser executado.
📸 Capturas de Tela / Vídeos Log de Erro no Terminal (Backend):
Plaintext
meu-backend | Erro Região PDF: Error: Failed to launch the browser process! spawn /app/node_modules/puppeteer/.local-chromium/linux-818858/chrome-linux/chrome ENOENT meu-backend | meu-backend | TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md Console do Navegador:
Plaintext
Failed to load resource: the server responded with a status of 500 (Internal Server Error) 💻 Ambiente de Execução Sistema Operacional Hospedeiro: Windows 11 com WSL 2 (Ubuntu 24.04).
Ambiente de Container: Docker Desktop.
Imagem Base do Backend: node:22-alpine (Linux Alpine).
Bibliotecas Envolvidas: html-pdf-node, puppeteer.
Navegador (Cliente): Microsoft Edge / Google Chrome.
📝 Contexto Adicional Causa Raiz Identificada: A imagem alpine do Docker é minimalista e não vem com as bibliotecas gráficas (como libnss, libfreetype, etc.) nem com o Chromium instalado, que são pré-requisitos para o Puppeteer funcionar.
Solução Proposta: É necessário modificar o Dockerfile do backend para instalar manualmente o pacote chromium e suas dependências, além de configurar as variáveis de ambiente PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true e PUPPETEER_EXECUTABLE_PATH