Skip to content

Conversation

@LeonardoTosinPR
Copy link
Contributor

Qual o problema que esta mudança resolve?

Atualmente, o processo para iniciar o ambiente de desenvolvimento é manual e propenso a erros. O desenvolvedor precisa executar dois comandos em terminais separados e na ordem correta:

docker compose mongodb up -d (ou pnpm docker:compose:only:mongo) para iniciar o banco de dados.

pnpm dev para iniciar o frontend e o backend (via Nx).

Essa abordagem pode levar a erros se o banco de dados não for iniciado antes das aplicações, além de ser um passo extra que prejudica a produtividade e a Developer Experience (DX).

Qual a solução proposta?

Para resolver isso, o script dev no arquivo package.json foi modificado para automatizar a inicialização do contêiner do MongoDB junto com as aplicações.

Com a alteração, ao executar pnpm dev:

O contêiner do banco de dados é iniciado primeiro.

Em seguida, as aplicações (frontend e backend via Nx) são executadas.

Isso unifica todo o processo em um único comando, tornando o setup mais rápido, simples e à prova de erros para todos os sistemas operacionais (Linux, Windows, macOS).

Alternativas consideradas

Foi considerado manter os comandos separados e apenas melhorar a documentação, mas a automação do processo através do package.json se mostrou uma solução muito mais robusta e alinhada com as boas práticas de DX.

Contexto da Implementação (package.json)

A mudança foi implementada no bloco scripts do package.json da seguinte forma:
"dev": "pnpm docker:compose:only:mongo && nx run-many -t serve --projects=server,devmx --configuration=development",
Isso garante que a experiência de desenvolvimento seja mais fluida para todos os contribuidores do projeto.

@nx-cloud
Copy link

nx-cloud bot commented Nov 7, 2025

View your CI Pipeline Execution ↗ for commit 3cea303

Command Status Duration Result
nx affected -t lint test build --parallel=10 ✅ Succeeded <1s View ↗

☁️ Nx Cloud last updated this comment at 2025-11-07 21:11:45 UTC

@guiseek
Copy link
Member

guiseek commented Dec 8, 2025

poxa, desculpe pela demora na resposta @LeonardoTosinPR e muito obrigado pela contribuição, esse processo realmente precisa de melhorias.

Note

O desenvolvedor precisa executar dois comandos em terminais separados e na ordem correta:

os 2 terminais não são necessários, o parâmetro -d executa em detached mode, que não bloqueia o terminal, apenas executa e encerra, liberando o terminal novamente com o container em execução.

Caution

docker compose mongodb up -d (ou pnpm docker:compose:only:mongo) para iniciar o banco de dados.

você mencionou: docker compose mongodb up -d, que deva ter sido o problema. O comando pnpm docker:compose:only:mongo executa docker compose up -d mongodb. o up é um subcomando do compose depois dele é que vem qual service específico desejamos subir, no caso, o mongodb, provavelmente acabou executado tudo que tem no docker-compose.yml (server e devmx) que contém Dockerfile e seriam usados pra deploy, em desenvolvimento eles não são necessários.

Tip

O server e devmx do docker-compose.yml não estão sendo utilizados no depoloy também e podem até sair, acho que facilitaria evitar disso ocorrer novamente... O que acha de contribuir mantendo só o mongodb lá? 😄

Verifiquei e na documentação não tem o mongodb no comando.

Important

Caso o docker-compose.yml não seja atualizado, pode vir a ser a causa do mesmo problema no futuro, mas, caso fique somente o mongodb, a doc poderia continuar da forma que está.

Quanto a ordem correta, está correto, antes de iniciar o desenvolvimento com pnpm dev, o service mongodb do docker-compose.yml deve estar em execução.

Ainda que o service mongodb já esteja em execução e o pnpm dev seja executado novamente, não será um problema, então podemos fazer aceitar sua contribuição sem problemas.

LGTM 👍

**No Windows (PowerShell):**

```powershell
Copy-Item .env-example .env
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

não consigo testar este, mas confio, simbora

Copy link
Member

@guiseek guiseek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muito obrigado pela contribuição! ❤️

@guiseek guiseek merged commit b038dc0 into DeveloperParana:main Dec 8, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants