Files
goplt/docs/content/stories/epic7/7.4-docker-deployment.md

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