Files
satellite-provider/.cursor/skills/deploy/templates/containerization.md
T
Oleksandr Bezdieniezhnykh 09117f90b5 Sync .cursor from detections
2026-04-12 05:05:11 +03:00

2.0 KiB

Containerization Plan Template

Save as _docs/04_deploy/containerization.md.


# [System Name] — Containerization

## Component Dockerfiles

### [Component Name]

| Property | Value |
|----------|-------|
| Base image | [e.g., mcr.microsoft.com/dotnet/aspnet:8.0-alpine] |
| Build image | [e.g., mcr.microsoft.com/dotnet/sdk:8.0-alpine] |
| Stages | [dependency install → build → production] |
| User | [non-root user name] |
| Health check | [endpoint and command] |
| Exposed ports | [port list] |
| Key build args | [if any] |

### [Repeat for each component]

## Docker Compose — Local Development

```yaml
# docker-compose.yml structure
services:
  [component]:
    build: ./[path]
    ports: ["host:container"]
    environment: [reference .env.dev]
    depends_on: [dependencies with health condition]
    healthcheck: [command, interval, timeout, retries]

  db:
    image: [postgres:version-alpine]
    volumes: [named volume]
    environment: [credentials from .env.dev]
    healthcheck: [pg_isready]

volumes:
  [named volumes]

networks:
  [shared network]

Docker Compose — Blackbox Tests

# docker-compose.test.yml structure
services:
  [app components under test]

  test-runner:
    build: ./tests/integration
    depends_on: [app components with health condition]
    environment: [test configuration]
    # Exit code determines test pass/fail

  db:
    image: [postgres:version-alpine]
    volumes: [seed data mount]

Run: docker compose -f docker-compose.test.yml up --abort-on-container-exit

Image Tagging Strategy

Context Tag Format Example
CI build <registry>/<project>/<component>:<git-sha> ghcr.io/org/api:a1b2c3d
Release <registry>/<project>/<component>:<semver> ghcr.io/org/api:1.2.0
Local dev <component>:latest api:latest

.dockerignore

.git
.cursor
_docs
_standalone
node_modules
**/bin
**/obj
**/__pycache__
*.md
.env*
docker-compose*.yml