debug: simplify networks and add network diagnostics to resolve P1001
This commit is contained in:
@@ -1,6 +1,4 @@
|
|||||||
services:
|
services:
|
||||||
# O MinIO local e Postgres local foram removidos nesta configuração final para o novo servidor.
|
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
build:
|
build:
|
||||||
context: ./frontend
|
context: ./frontend
|
||||||
@@ -10,16 +8,13 @@ services:
|
|||||||
- "3000"
|
- "3000"
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=${NODE_ENV:-production}
|
- NODE_ENV=${NODE_ENV:-production}
|
||||||
# Conexão com o banco centralizado (Postgres unificado)
|
|
||||||
- DATABASE_URL=${DATABASE_URL}
|
- DATABASE_URL=${DATABASE_URL}
|
||||||
# Configurações de Mídias (S3 / RustFS)
|
|
||||||
- S3_ENDPOINT=${S3_ENDPOINT}
|
- S3_ENDPOINT=${S3_ENDPOINT}
|
||||||
- S3_PORT=${S3_PORT:-9000}
|
- S3_PORT=${S3_PORT:-9000}
|
||||||
- S3_USE_SSL=${S3_USE_SSL:-false}
|
- S3_USE_SSL=${S3_USE_SSL:-false}
|
||||||
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
|
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
|
||||||
- S3_SECRET_KEY=${S3_SECRET_KEY}
|
- S3_SECRET_KEY=${S3_SECRET_KEY}
|
||||||
- S3_BUCKET_NAME=${S3_BUCKET_NAME:-occto-images}
|
- S3_BUCKET_NAME=${S3_BUCKET_NAME:-occto-images}
|
||||||
# Segurança e Outros
|
|
||||||
- JWT_SECRET=${JWT_SECRET}
|
- JWT_SECRET=${JWT_SECRET}
|
||||||
- LIBRETRANSLATE_URL=${LIBRETRANSLATE_URL:-https://libretranslate.stackbyte.cloud}
|
- LIBRETRANSLATE_URL=${LIBRETRANSLATE_URL:-https://libretranslate.stackbyte.cloud}
|
||||||
labels:
|
labels:
|
||||||
@@ -31,15 +26,9 @@ services:
|
|||||||
- "traefik.http.services.occto-frontend.loadbalancer.server.port=3000"
|
- "traefik.http.services.occto-frontend.loadbalancer.server.port=3000"
|
||||||
- "traefik.docker.network=dokploy-network"
|
- "traefik.docker.network=dokploy-network"
|
||||||
networks:
|
networks:
|
||||||
- occto_network
|
|
||||||
- dokploy-network
|
- dokploy-network
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
occto_network:
|
|
||||||
driver: bridge
|
|
||||||
dokploy-network:
|
dokploy-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
volumes:
|
|
||||||
minio_data:
|
|
||||||
|
|||||||
@@ -1,34 +1,47 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
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() {
|
wait_for_db() {
|
||||||
echo "⏳ Aguardando banco de dados em $DATABASE_URL..."
|
echo "⏳ Aguardando banco de dados..."
|
||||||
max_retries=30
|
max_retries=20
|
||||||
count=0
|
count=0
|
||||||
while ! ./node_modules/.bin/prisma db push --dry-run > /dev/null 2>&1; do
|
while ! ./node_modules/.bin/prisma db push --dry-run > /dev/null 2>&1; do
|
||||||
count=$((count + 1))
|
count=$((count + 1))
|
||||||
if [ $count -gt $max_retries ]; then
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "🔄 Tentativa $count/$max_retries: Banco ainda não disponível, aguardando 2s..."
|
echo "🔄 Tentativa $count/$max_retries: Banco ainda offline ou invisível..."
|
||||||
sleep 2
|
sleep 3
|
||||||
done
|
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
|
if [ -n "$DATABASE_URL" ]; then
|
||||||
wait_for_db
|
wait_for_db
|
||||||
echo "🔄 Sincronizando tabelas do Prisma (db push)..."
|
echo "🔄 Sincronizando tabelas do Prisma..."
|
||||||
./node_modules/.bin/prisma db push --accept-data-loss
|
./node_modules/.bin/prisma db push --accept-data-loss
|
||||||
|
|
||||||
echo "🌱 Executando seed..."
|
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
|
else
|
||||||
echo "⚠️ DATABASE_URL não configurada, pulando migrations."
|
echo "⚠️ DATABASE_URL vazia. O deploy vai falhar ou subir sem banco."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "🚀 Iniciando aplicação..."
|
echo "🚀 Subindo aplicação..."
|
||||||
exec node server.js
|
exec node server.js
|
||||||
|
|||||||
Reference in New Issue
Block a user