debug: simplify networks and add network diagnostics to resolve P1001

This commit is contained in:
Erik
2026-03-07 20:51:06 -03:00
parent ef74da475b
commit 2f970e41ce
2 changed files with 25 additions and 23 deletions

View File

@@ -1,34 +1,47 @@
#!/bin/sh
set -e
# Função para esperar o banco de dados ficar pronto
echo "🔎 --- DIAGNÓSTICO DE REDE ---"
echo "🌐 Tentando resolver o host do banco..."
# Tenta descobrir o IP do host do banco
if command -v getent >/dev/null; then
echo "Host: $DATABASE_URL"
# Extrai o host da URL (tudo entre @ e :)
DB_HOST=$(echo $DATABASE_URL | sed -e 's/.*@//' -e 's/:.*//')
echo "🔍 Resolvendo IP para: $DB_HOST"
getent hosts $DB_HOST || echo "⚠️ Não foi possível resolver o nome do host via DNS interno."
else
echo "⚠️ 'getent' não disponível para diagnóstico."
fi
# Função para esperar o banco de dados
wait_for_db() {
echo "⏳ Aguardando banco de dados em $DATABASE_URL..."
max_retries=30
echo "⏳ Aguardando banco de dados..."
max_retries=20
count=0
while ! ./node_modules/.bin/prisma db push --dry-run > /dev/null 2>&1; do
count=$((count + 1))
if [ $count -gt $max_retries ]; then
echo "❌ Erro: Banco de dados não responde após $max_retries tentativas."
echo "❌ Erro: O Banco de Dados continua inalcançável após $max_retries tentativas."
echo "💡 DICA: Verifique se o Banco e o Site estão na MESMA 'Docker Network' no Dokploy."
exit 1
fi
echo "🔄 Tentativa $count/$max_retries: Banco ainda não disponível, aguardando 2s..."
sleep 2
echo "🔄 Tentativa $count/$max_retries: Banco ainda offline ou invisível..."
sleep 3
done
echo "✅ Banco de dados detectado!"
echo "✅ CONEXÃO ESTABELECIDA! Banco de dados encontrado."
}
# Só executa se DATABASE_URL estiver definida
if [ -n "$DATABASE_URL" ]; then
wait_for_db
echo "🔄 Sincronizando tabelas do Prisma (db push)..."
echo "🔄 Sincronizando tabelas do Prisma..."
./node_modules/.bin/prisma db push --accept-data-loss
echo "🌱 Executando seed..."
./node_modules/.bin/prisma db seed || echo "⚠️ Seed falhou ou já foi executado"
./node_modules/.bin/prisma db seed || echo "⚠️ Seed falhou (pode ser que os dados já existam)"
else
echo "⚠️ DATABASE_URL não configurada, pulando migrations."
echo "⚠️ DATABASE_URL vazia. O deploy vai falhar ou subir sem banco."
fi
echo "🚀 Iniciando aplicação..."
echo "🚀 Subindo aplicação..."
exec node server.js