fix(docker): resolver DATABASE_URL localhost→db no container automaticamente

- docker-entrypoint.sh: substituir @localhost: por @db: via sed antes das
  migrations e do Next.js subirem — transparente para o usuário
- docker-compose.yml: adicionar valor padrão para DATABASE_URL para
  permitir subir sem .env configurado

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Felipe Coutinho
2026-04-12 01:48:20 +00:00
parent 5bcf4f69d3
commit 99a9ff5512
2 changed files with 10 additions and 1 deletions

View File

@@ -81,7 +81,8 @@ services:
NODE_ENV: production NODE_ENV: production
# Banco local: use host "db" | Banco remoto: URL completa do provider # Banco local: use host "db" | Banco remoto: URL completa do provider
DATABASE_URL: ${DATABASE_URL} # O entrypoint converte automaticamente "localhost" → "db" se necessário
DATABASE_URL: ${DATABASE_URL:-postgresql://openmonetis:openmonetis_dev_password@db:5432/openmonetis_db}
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET} BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
BETTER_AUTH_URL: ${BETTER_AUTH_URL:-http://localhost:3000} BETTER_AUTH_URL: ${BETTER_AUTH_URL:-http://localhost:3000}

View File

@@ -1,5 +1,13 @@
#!/bin/sh #!/bin/sh
# Dentro do container Docker, "localhost" não alcança o serviço de banco.
# Substitui automaticamente para o nome do serviço "db" da rede Docker.
# Não afeta URLs de bancos remotos (não contêm "@localhost:").
if [ -n "$DATABASE_URL" ]; then
DATABASE_URL=$(echo "$DATABASE_URL" | sed 's|@localhost:|@db:|g')
export DATABASE_URL
fi
echo "Rodando migrations..." echo "Rodando migrations..."
RETRIES=5 RETRIES=5
until NODE_PATH=/app/migrate/node_modules /app/migrate/node_modules/.bin/drizzle-kit push || [ "$RETRIES" -eq 0 ]; do until NODE_PATH=/app/migrate/node_modules /app/migrate/node_modules/.bin/drizzle-kit push || [ "$RETRIES" -eq 0 ]; do