Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • aiprodutor-backend aiprodutor-backend
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 5
    • Merge requests 5
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ai Produtor Sistema de Cadastro e Gestao de Produtores de Hortifrutie
  • aiprodutor-backendaiprodutor-backend
  • Merge requests
  • !21

Merged
Created Sep 18, 2025 by Lucas Ramon Schnorrenberger@lucas.schnorrenbergerOwner

fix(deploy): Corrige inicialização do contêiner backend no Docker

  • Overview 0
  • Commits 1
  • Pipelines 1
  • Changes 2

O contêiner da API estava parando logo após ser iniciado devido a dois problemas principais:

Migração no Build: O Dockerfile tentava executar o prisma migrate deploy durante o processo de build da imagem, um momento em que o banco de dados ainda não estava on.

Condição de Corrida: Mesmo movendo a migração para a inicialização, a API tentava se conectar ao banco de dados antes que ele estivesse pronto para aceitar conexões, crashando.

Para solucionar os problemas, as seguintes alterações foram implementadas:

No Dockerfile: A etapa RUN npx prisma migrate deploy foi removida do processo de build. Foi adicionada a instalação do postgresql-client para disponibilizar a ferramenta pg_isready. O ENTRYPOINT do contêiner foi modificado para executar um novo script de inicialização.

Novo Arquivo entrypoint.sh: Foi criado um script que gerencia a sequência de inicialização do contêiner. O script primeiro entra em um loop de espera, usando pg_isready para garantir que o banco de dados esteja totalmente operacional. Somente após a confirmação, ele executa o npx prisma migrate deploy.

Por fim, ele inicia a aplicação Node.js (node dist/main).

Foi testado o comando docker compose -d para rodar o back e banco no docker e também foi testado rodar somente o banco no docker.

image image image

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: lucasramon/ai-44-bug-erro-no-docker-compose-backend