Files
ui/.cursor/skills/deploy/steps/02_containerization.md
T
2026-04-18 22:04:31 +03:00

2.0 KiB

Step 2: Containerization

Role: DevOps / Platform engineer Goal: Define Docker configuration for every component, local development, and blackbox test environments. Constraints: Plan only — no Dockerfile creation. Describe what each Dockerfile should contain.

Steps

  1. Read architecture.md and all component specs
  2. Read restrictions.md for infrastructure constraints
  3. Research best Docker practices for the project's tech stack (multi-stage builds, base image selection, layer optimization)
  4. For each component, define:
    • Base image (pinned version, prefer alpine/distroless for production)
    • Build stages (dependency install, build, production)
    • Non-root user configuration
    • Health check endpoint and command
    • Exposed ports
    • .dockerignore contents
  5. Define docker-compose.yml for local development:
    • All application components
    • Database (Postgres) with named volume
    • Any message queues, caches, or external service mocks
    • Shared network
    • Environment variable files (.env)
  6. Define docker-compose.test.yml for blackbox tests:
    • Application components under test
    • Test runner container (black-box, no internal imports)
    • Isolated database with seed data
    • All tests runnable via docker compose -f docker-compose.test.yml up --abort-on-container-exit
  7. Define image tagging strategy: <registry>/<project>/<component>:<git-sha> for CI, latest for local dev only

Self-verification

  • Every component has a Dockerfile specification
  • Multi-stage builds specified for all production images
  • Non-root user for all containers
  • Health checks defined for every service
  • docker-compose.yml covers all components + dependencies
  • docker-compose.test.yml enables black-box testing
  • .dockerignore defined

Save action

Write containerization.md using templates/containerization.md.

Blocking

BLOCKING: Present containerization plan to user. Do NOT proceed until confirmed.