Guia exclusivo para quem usa Docker no desenvolvimento do projeto Eventos - Comunidade Cafe Bugado. Se voce roda o projeto localmente com pnpm dev, consulte o FLUXO_DE_TRABALHO.md.
| Ferramenta | Versao Minima | Como verificar |
|---|---|---|
| Docker | 24.x | docker --version |
| Docker Compose | 2.x | docker compose version |
| Git | 2.x | git --version |
Windows: O Docker Desktop precisa estar rodando (icone na bandeja do sistema).
Se voce ainda nao fez o setup, siga o SETUP_INICIAL.md completo primeiro. Abaixo esta o resumo para Docker:
# 1. Clonar o repositorio
git clone https://github.com/cafebugado/agendas-eventos.git
cd agendas-eventos
# 2. Configurar variaveis de ambiente
cp .env.example .env
# Edite o .env com as credenciais do Supabase
# 3. Subir o container pela primeira vez (faz build automaticamente)
docker-compose up app-devAcesse: http://localhost:5173
Windows/Mac: Abra o Docker Desktop e aguarde ele iniciar completamente.
Verifique se esta funcionando:
docker infogit checkout developer
git pull origin developergit checkout -b feature/nome-da-tarefaNomenclatura:
feature/,fix/ouhotfix/seguido de descricao em kebab-case.
# Primeira vez ou apos mudar dependencias
docker-compose up --build app-dev
# Demais vezes (mais rapido)
docker-compose up app-devAcesse: http://localhost:5173
O terminal fica preso mostrando logs. Para rodar em background, adicione
-d:docker-compose up -d app-dev
Edite os arquivos normalmente no seu editor. O hot reload esta configurado - as alteracoes em src/ aparecem automaticamente no navegador.
Nota Windows/Mac: O hot reload usa polling (
CHOKIDAR_USEPOLLING=true), pode haver um pequeno delay de 1-2 segundos.
Para lint, testes ou qualquer comando pnpm, execute dentro do container:
# Verificar linting
docker-compose exec app-dev pnpm lint
# Corrigir linting
docker-compose exec app-dev pnpm lint:fix
# Formatar codigo
docker-compose exec app-dev pnpm format
# Rodar testes
docker-compose exec app-dev pnpm test:run
# Testes com cobertura
docker-compose exec app-dev pnpm test:coverageDica: Se o container esta rodando em background (
-d), esses comandos funcionam normalmente. Se esta em foreground, abra outro terminal.
Os commits sao feitos no seu terminal local (nao dentro do container):
# Adicionar arquivos
git add src/pages/Home.jsx src/components/NovoComponente.jsx
# Commit seguindo o padrao
git commit -m "feat(eventos): adiciona filtro por cidade"O Husky roda o lint-staged e commitlint automaticamente. Se falhar, corrija e tente novamente.
# Enviar para o GitHub
git push -u origin feature/nome-da-tarefaAbra o PR no GitHub apontando para developer.
# Se rodando em foreground: Ctrl+C
# Se rodando em background:
docker-compose down| Comando | O que faz |
|---|---|
docker-compose up app-dev |
Inicia o container (foreground) |
docker-compose up -d app-dev |
Inicia em background |
docker-compose up --build app-dev |
Reconstroi e inicia |
docker-compose down |
Para e remove containers |
docker-compose restart app-dev |
Reinicia o container |
docker-compose stop app-dev |
Para sem remover |
docker-compose start app-dev |
Inicia container parado |
| Comando | O que faz |
|---|---|
docker-compose logs app-dev |
Ver todos os logs |
docker-compose logs -f app-dev |
Acompanhar logs em tempo real |
docker-compose logs --tail 50 app-dev |
Ultimas 50 linhas de log |
docker-compose ps |
Ver containers rodando |
| Comando | O que faz |
|---|---|
docker-compose exec app-dev pnpm lint |
Rodar lint |
docker-compose exec app-dev pnpm lint:fix |
Corrigir lint |
docker-compose exec app-dev pnpm format |
Formatar codigo |
docker-compose exec app-dev pnpm test:run |
Rodar testes |
docker-compose exec app-dev pnpm test:coverage |
Testes com cobertura |
docker-compose exec app-dev pnpm build |
Gerar build |
docker-compose exec app-dev sh |
Abrir shell dentro do container |
| Comando | O que faz |
|---|---|
docker-compose down --volumes |
Remove containers e volumes |
docker system prune |
Remove recursos nao usados |
docker system prune -a |
Remove tudo (imagens, cache, etc.) |
docker images |
Listar imagens |
docker rmi <image_id> |
Remover imagem especifica |
O projeto tem 3 ambientes Docker configurados:
docker-compose up app-dev- Porta: 5173
- Hot reload: Sim (alteracoes em
src/refletem automaticamente) - Volume: Codigo local montado no container
- Recursos: CPU 1.0 / Memoria 1GB
docker-compose --profile staging up app-staging- Porta: 3000
- Hot reload: Nao (build estatico com Nginx)
- Uso: Testar a build antes de ir para producao
- Recursos: CPU 0.5 / Memoria 256MB
docker-compose --profile production up app-prod- Porta: 80
- Hot reload: Nao (build estatico com Nginx + gzip)
- Uso: Simular exatamente o ambiente de producao
- Recursos: CPU 1.0 / Memoria 512MB
- Adicionou/removeu dependencia no
package.json - Alterou o
Dockerfile.dev - Alterou o
docker-compose.yml
docker-compose up --build app-dev- Alterou arquivos em
src/(hot reload cuida disso) - Alterou o
.env(apenas reinicie)
# Para mudancas no .env
docker-compose restart app-dev# 1. Abrir Docker Desktop (Windows/Mac)
# 2. Atualizar developer
git checkout developer
git pull origin developer
# 3. Criar branch
git checkout -b feature/minha-tarefa
# 4. Subir container
docker-compose up app-dev
# 5. Desenvolver (editar arquivos normalmente)
# 6. Testar (em outro terminal)
docker-compose exec app-dev pnpm lint
docker-compose exec app-dev pnpm test:run
# 7. Commit (terminal local)
git add arquivos-modificados
git commit -m "feat(escopo): descricao"
# 8. Push
git push -u origin feature/minha-tarefa
# 9. Abrir PR no GitHub para developer
# 10. Parar container
docker-compose down
# 11. Apos merge, limpeza
git checkout developer
git pull origin developer
git branch -d feature/minha-tarefa# Reconstrua do zero
docker-compose down
docker-compose up --build app-devO polling ja esta configurado. Se ainda nao funcionar:
# Reinicie o container
docker-compose restart app-dev
# Se persistir, reconstrua
docker-compose down
docker-compose up --build app-dev# Verifique o que esta usando a porta
# Windows
netstat -ano | findstr :5173
# Pare qualquer processo usando a porta e tente novamente# Limpar cache do Docker
docker system prune -a# Reconstrua para reinstalar
docker-compose down
docker-compose up --build app-devO Docker no Windows pode ser mais lento por causa do WSL2. Dicas:
- Certifique-se de que o Docker Desktop usa WSL2 (Settings > General)
- Mantenha o projeto dentro do filesystem do WSL para melhor performance
- Feche programas pesados durante o desenvolvimento
# Alias para comandos frequentes
alias dcup="docker-compose up app-dev"
alias dcupd="docker-compose up -d app-dev"
alias dcdown="docker-compose down"
alias dcbuild="docker-compose up --build app-dev"
alias dclogs="docker-compose logs -f app-dev"
alias dclint="docker-compose exec app-dev pnpm lint"
alias dctest="docker-compose exec app-dev pnpm test:run"
alias dcsh="docker-compose exec app-dev sh"Com os alias:
dcup # Inicia container
dclint # Roda lint
dctest # Roda testes
dcdown # Para containerInstale a extensao Dev Containers (ms-vscode-remote.remote-containers) para editar arquivos diretamente dentro do container com suporte completo de IntelliSense.
Para mais detalhes sobre o fluxo de Git (commits, PRs, branches), consulte o FLUXO_DE_TRABALHO.md.
Para problemas gerais (nao relacionados ao Docker), consulte o TROUBLESHOOTING.md.