Service fields
Each entry in theservices array defines one container.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | Unique service name within the app |
image | string | required | OCI image reference (registry/repo:tag or digest) |
command | string[] | optional | Override container entrypoint |
env | map[string]string | optional | Environment variables |
ports | port[] | optional | Port exposure definitions |
mounts | mount[] | optional | Bind-style mounts from the state area |
stateVolumes | string[] | optional | Named volume mounts (name:/path) |
dependsOn | string[] | optional | Service names that must start before this service |
ports[]
| Field | Type | Required | Description |
|---|---|---|---|
container | int | required | Container port number (1–65535) |
hostExposure | enum | optional | auto — system assigns host port; none — no host exposure. Default: auto |
mounts[]
| Field | Type | Required | Description |
|---|---|---|---|
source | string | required | Format: state:<volume-name> for state-backed mounts |
target | string | required | Absolute path inside the container |
stateVolumes
A shorthand for attaching named volumes. Each entry is name:/path:
dbdata must have a matching entry in state.volumes.
Startup ordering
UsedependsOn to declare startup order. The runtime starts services in topological order (dependency-first). Cycles are rejected at validation time.
