diff --git a/docker-compose.yml b/docker-compose.yml index eff9bd2..2d67561 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,4 @@ services: - # O MinIO local e Postgres local foram removidos nesta configuração final para o novo servidor. - frontend: build: context: ./frontend @@ -10,16 +8,13 @@ services: - "3000" environment: - NODE_ENV=${NODE_ENV:-production} - # Conexão com o banco centralizado (Postgres unificado) - DATABASE_URL=${DATABASE_URL} - # Configurações de Mídias (S3 / RustFS) - S3_ENDPOINT=${S3_ENDPOINT} - S3_PORT=${S3_PORT:-9000} - S3_USE_SSL=${S3_USE_SSL:-false} - S3_ACCESS_KEY=${S3_ACCESS_KEY} - S3_SECRET_KEY=${S3_SECRET_KEY} - S3_BUCKET_NAME=${S3_BUCKET_NAME:-occto-images} - # Segurança e Outros - JWT_SECRET=${JWT_SECRET} - LIBRETRANSLATE_URL=${LIBRETRANSLATE_URL:-https://libretranslate.stackbyte.cloud} labels: @@ -31,15 +26,9 @@ services: - "traefik.http.services.occto-frontend.loadbalancer.server.port=3000" - "traefik.docker.network=dokploy-network" networks: - - occto_network - dokploy-network restart: unless-stopped networks: - occto_network: - driver: bridge dokploy-network: external: true - -volumes: - minio_data: diff --git a/frontend/start.sh b/frontend/start.sh index 5dbc9dd..de2d86c 100644 --- a/frontend/start.sh +++ b/frontend/start.sh @@ -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