Troubleshooting

🔴 PROBLEMAS DE BUILD - FRONTENDS

Data: 2026-01-13 Status: ✅ PRODUCER RESOLVIDO | ⏳ SUPPLIER PENDENTE

🔴 PROBLEMAS DE BUILD - FRONTENDS

Data: 2026-01-13 Status: ✅ PRODUCER RESOLVIDO | ⏳ SUPPLIER PENDENTE


📋 RESUMO DOS PROBLEMAS

1. Producer - Build Docker ✅ RESOLVIDO

Problema: Build falhava na VPS mas funcionava localmente.

Causa: Cache do Docker estava causando problemas no build.

Solução: Build com --no-cache flag:

docker build --no-cache -f apps/producer/Dockerfile.production -t agrsis-producer:latest apps/producer

Status: ✅ RESOLVIDO - Producer rodando em https://producer.agrsis.com


2. Email de Recuperação de Senha ✅ RESOLVIDO

Problema: Frontend (Producer) mostrava erro "Erro ao enviar email de recuperação" mesmo com API configurada corretamente.

Causa Raiz: AMBOS os containers (API e Producer) tinham o .env embutido durante o build. Copiar o .env para a VPS não era suficiente porque os containers usavam o .env antigo hard-coded na imagem Docker.

Solução Completa:

# 1. REBUILDAR API (Laravel)
cd /opt/agrsis
cp .env apps/api/.env
docker compose build --no-cache api
docker compose up -d api
docker exec agrsis_api php artisan config:clear
docker exec agrsis_api php artisan cache:clear

# 2. REBUILDAR PRODUCER (Nuxt Frontend)
docker compose build --no-cache frontend-producer
docker compose up -d frontend-producer

Configurações Corretas Aplicadas:

  • API: MAIL_HOST=smtp-relay.brevo.com, APP_FRONTEND_URL=https://producer.agrsis.com
  • Producer: NUXT_PUBLIC_API_BASE_URL=https://api.agrsis.com/api/v1

Status: ✅ RESOLVIDO - Containers reconstruídos com configurações corretas


3. Supplier - Erro no Import do Heroicons ⏳ PENDENTE

Arquivo: apps/supplier/components/dashboard/MetricCard.vue:42Erro: "TrendingUpIcon" is not exported by "@heroicons/vue/20/solid"

Código com problema:

<script setup lang="ts">
import {
  TrendingUpIcon,  // ❌ Não existe em 20/solid
  TrendingDownIcon // ❌ Não existe em 20/solid
} from '@heroicons/vue/20/solid'
</script>

Solução:

<script setup lang="ts">
// Trending icons estão em 24/outline, não em 20/solid
import {
  ArrowTrendingUpIcon,    // ✅ Nome correto
  ArrowTrendingDownIcon   // ✅ Nome correto
} from '@heroicons/vue/24/outline'
</script>

Status: ⏳ Pendente de correção (não prioritário)


🔧 AÇÕES REALIZADAS

  1. ✅ Identificado erro de template string no producer
  2. ✅ Corrigido erro de template string localmente
  3. ✅ Simplificado Dockerfile.production do producer
  4. ✅ Identificado erro de import no supplier
  5. ⏳ Aguardando deploy do producer corrigido

📝 PRÓXIMOS PASSOS

Producer (URGENTE)

  1. Deploy manual do producer (supplier não funciona por enquanto)
  2. Testar acesso em https://producer.agrsis.com
  3. Testar funcionalidade de forgot-password

Supplier (MÉDIO PRAZO)

  1. Corrigir imports do Heroicons em MetricCard.vue
  2. Verificar se há outros componentes com mesmo problema
  3. Testar build localmente
  4. Deploy após correção

🐛 LOGS DE ERRO

Producer - Build Error (ANTES DA CORREÇÃO)

[nuxi]  ERROR  Nuxt Build Error: composables/useProposalSelection.js (19:13): Unterminated template
file: /app/composables/useProposalSelection.js:19:13

17:       selectedProposals.value.push(proposal)
18:     } else {
19:       alert(\`Você pode comparar no máximo \${MAX_SELECTION} propostas por vez.\`)
                 ^
20:     }
21:   }

Supplier - Build Error (ATUAL)

[nuxi]  ERROR  Nuxt Build Error: components/dashboard/MetricCard.vue?vue&type=script&setup=true&lang.ts (42:2):
"TrendingUpIcon" is not exported by "node_modules/@heroicons/vue/20/solid/esm/index.js"
file: /app/components/dashboard/MetricCard.vue?vue&type=script&setup=true&lang.ts:42:2

40: } from '@heroicons/vue/24/outline'
41: import {
42:   TrendingUpIcon,
      ^
43:   TrendingDownIcon
44: } from '@heroicons/vue/20/solid'

⚠️ NOTAS IMPORTANTES

  1. Nomes dos containers no NPM estão corretos:
    • API: agrsis_api (porta 8000)
    • Producer: agrsis_producer (porta 3000)
    • Supplier: agrsis_supplier (porta 3000)
  2. Script de deploy usa esses nomes corretamente
  3. Build do supplier bloqueia deploy completo - Por isso faremos deploy manual apenas do producer
  4. Email já foi corrigido na API - Brevo configurado e testado via Tinker ✅

📊 STATUS DOS SERVIÇOS

ServiçoContainerStatus BuildStatus RuntimeURLObservações
APIagrsis_api✅ OK✅ Rodandohttps://api.agrsis.comEmail Brevo OK, migrations OK
Produceragrsis_producer✅ OK✅ Rodandohttps://producer.agrsis.comBuild com --no-cache ✅
Supplieragrsis_supplier❌ Falha❌ Parado-Erro de import Heroicons
PostgreSQLagrsis_postgres_prod✅ OK✅ Rodando-6 users, 5 addresses
Redisagrsis_redis_prod✅ OK✅ Rodando--

Última atualização: 2026-01-13 14:10 UTC

Copyright © 2026