sass-imobiliaria/.specify/features/002-docker-setup/tasks.md

109 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tasks: Docker Setup
**Branch**: `002-docker-setup`
**Plan**: `.specify/features/002-docker-setup/plan.md`
**Created**: 2026-04-13
---
## Phase 1 — Backend Dockerfile
### T001 — Criar backend/Dockerfile
- **Complexity**: S
- **Dependencies**: nenhuma
- **Spec ref**: FR1, FR3
- **Files**: `backend/Dockerfile`, `backend/entrypoint.sh`
- **Done when**: `docker build -t imob-backend ./backend` conclui sem erro
### T002 — Criar entrypoint.sh com migrations + seed + server
- **Complexity**: S
- **Dependencies**: T001
- **Spec ref**: FR3
- **Files**: `backend/entrypoint.sh`
- **Done when**: Script executa `flask db upgrade`, seeder, e sobe Flask na porta 5000
---
## Phase 2 — Frontend Dockerfile
### T003 — Criar frontend/Dockerfile
- **Complexity**: S
- **Dependencies**: nenhuma [P] paralelo com T001
- **Spec ref**: FR1, FR4
- **Files**: `frontend/Dockerfile`
- **Done when**: `docker build -t imob-frontend ./frontend` conclui sem erro
### T004 — Atualizar vite.config.ts para proxy Docker
- **Complexity**: S
- **Dependencies**: T003
- **Spec ref**: FR1
- **Files**: `frontend/vite.config.ts`
- **Done when**: Proxy aponta para `http://backend:5000` (nome do serviço Docker); local dev ainda funciona via variável de ambiente
---
## Phase 3 — Orquestração
### T005 — Criar docker-compose.yml
- **Complexity**: M
- **Dependencies**: T001, T003
- **Spec ref**: FR1, FR2, FR4, FR5
- **Files**: `docker-compose.yml`
- **Done when**: `docker-compose config` valida; 3 serviços definidos com healthcheck no db
### T006 — Criar .env.example na raiz
- **Complexity**: S
- **Dependencies**: T005
- **Spec ref**: FR5, NFR4
- **Files**: `.env.example` (raiz)
- **Done when**: Todas as variáveis usadas no compose estão documentadas com valores de exemplo
### T007 — Verificar .gitignore cobre .env
- **Complexity**: S
- **Dependencies**: T006
- **Spec ref**: NFR3, NFR4
- **Files**: `.gitignore`
- **Done when**: `.env` está no .gitignore e não aparece em `git status`
---
## Phase 4 — Script de conveniência
### T008 — Criar start.ps1 na raiz
- **Complexity**: S
- **Dependencies**: T005
- **Spec ref**: FR6
- **Files**: `start.ps1`
- **Done when**: `.\start.ps1` valida Docker e executa compose; exibe erro claro se Docker não estiver instalado
---
## Validação
### T009 — Testar docker-compose up --build end-to-end
- **Complexity**: M
- **Dependencies**: T005, T008
- **Spec ref**: Todos os Acceptance Scenarios
- **Done when**:
- `http://localhost:5173` carrega homepage
- `http://localhost:5000/api/v1/homepage-config` retorna 200
- `http://localhost:5000/api/v1/properties?featured=true` retorna array
- Editar um `.tsx` reflete no browser via hot-reload
---
## Resumo
| Task | Fase | Complexidade | Paralelo? |
|------|------|-------------|-----------|
| T001 | Backend Dockerfile | S | - |
| T002 | entrypoint.sh | S | - |
| T003 | Frontend Dockerfile | S | ✅ com T001 |
| T004 | vite proxy Docker | S | - |
| T005 | docker-compose.yml | M | - |
| T006 | .env.example raiz | S | - |
| T007 | .gitignore check | S | - |
| T008 | start.ps1 | S | - |
| T009 | Validação E2E | M | - |
**MVP**: T001T008 = ambiente Docker funcional.