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

2.2 KiB

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