Files
admin/_docs/02_document/deployment/containerization.md
T
2026-04-16 06:25:36 +03:00

29 lines
998 B
Markdown

# Containerization
## Dockerfile
Multi-stage build targeting .NET 10.0:
1. **Base stage** (`mcr.microsoft.com/dotnet/aspnet:10.0`): Runtime image, exposes port 8080.
2. **Build stage** (`mcr.microsoft.com/dotnet/sdk:10.0`): Restores packages, builds release configuration. Supports cross-platform builds via `$BUILDPLATFORM` and `$TARGETARCH`.
3. **Publish stage**: Publishes with `UseAppHost=false`, targets Linux with specified architecture.
4. **Final stage**: Copies published output, sets entrypoint to `dotnet Azaion.AdminApi.dll`.
## Container Registry
- Private registry: `docker.azaion.com`
- Deploy command: `docker build -t docker.azaion.com/api . && docker push docker.azaion.com/api`
- CI registry: `localhost:5000` (Woodpecker CI local registry)
## Tags
| Branch | Tag |
|--------|-----|
| `main` | `arm` |
| `dev` | `dev-arm` |
| `stage` | `stage-arm` |
## Docker Test
A placeholder `docker.test/Dockerfile` exists (`FROM alpine:latest; CMD echo hello`) — appears unused.