78 lines
2.2 KiB
Markdown
78 lines
2.2 KiB
Markdown
# Story 7.4: Docker and Deployment
|
|
|
|
## Metadata
|
|
- **Story ID**: 7.4
|
|
- **Title**: Docker and Deployment
|
|
- **Epic**: 7 - Testing, Documentation & CI/CD
|
|
- **Status**: Pending
|
|
- **Priority**: High
|
|
- **Estimated Time**: 6-8 hours
|
|
- **Dependencies**: All previous epics
|
|
|
|
## Goal
|
|
Create production-ready Docker images and comprehensive deployment guides.
|
|
|
|
## Description
|
|
This story creates multi-stage Dockerfiles, Docker Compose files, and deployment guides for various platforms.
|
|
|
|
## Deliverables
|
|
|
|
### 1. Docker Images
|
|
- Create multi-stage `Dockerfile`:
|
|
- Build stage with Go
|
|
- Runtime stage (distroless)
|
|
- Health checks
|
|
- Proper layer caching
|
|
|
|
### 2. Docker Compose
|
|
- Create `docker-compose.yml` for development:
|
|
- Platform service
|
|
- PostgreSQL
|
|
- Redis
|
|
- Kafka (optional)
|
|
- Create `docker-compose.prod.yml` for production
|
|
|
|
### 3. Deployment Guides
|
|
- **docs/deployment/kubernetes.md**:
|
|
- Kubernetes manifests
|
|
- Helm chart (optional)
|
|
- Service definitions
|
|
- ConfigMap and Secret management
|
|
- **docs/deployment/docker.md**:
|
|
- Docker Compose deployment
|
|
- Environment variables
|
|
- Volume mounts
|
|
- **docs/deployment/cloud.md**:
|
|
- AWS/GCP/Azure deployment notes
|
|
- Managed service integration
|
|
- Load balancer configuration
|
|
|
|
### 4. Developer Experience
|
|
- Create `Makefile` with common tasks:
|
|
- `make dev` - Start dev environment
|
|
- `make test` - Run tests
|
|
- `make lint` - Run linters
|
|
- `make generate` - Generate code
|
|
- `make docker-build` - Build Docker image
|
|
- `make migrate` - Run migrations
|
|
- Add development scripts:
|
|
- `scripts/dev.sh` - Start all services
|
|
- `scripts/test.sh` - Run test suite
|
|
- `scripts/seed.sh` - Seed test data
|
|
- Create `.env.example` with all config variables
|
|
|
|
## Acceptance Criteria
|
|
- [ ] Docker images build and run successfully
|
|
- [ ] Docker Compose works for development
|
|
- [ ] Deployment guides are tested
|
|
- [ ] New developers can set up environment in <30 minutes
|
|
|
|
## Files to Create/Modify
|
|
- `Dockerfile` - Multi-stage build
|
|
- `docker-compose.yml` - Development compose
|
|
- `docker-compose.prod.yml` - Production compose
|
|
- `docs/deployment/` - Deployment guides
|
|
- `Makefile` - Enhanced with more commands
|
|
- `scripts/` - Development scripts
|
|
|