mirror of
https://github.com/azaion/admin.git
synced 2026-04-22 22:06:33 +00:00
d96971b050
Add .cursor autodevelopment system
2.0 KiB
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