fix(deploy): Corrige inicialização do contêiner backend no Docker
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.