MATIH Platform is in active MVP development. Documentation reflects current implementation status.
18. CI/CD & Build System
Stage 04: Service Images

Stage 04: Service Docker Images

Stage 04 builds Docker images for all platform services (30+ images) and pushes them to Azure Container Registry. Stage 04a optionally syncs images to tenant-specific registries.

Source files: scripts/stages/04-build-service-images.sh, scripts/stages/04a-sync-tenant-images.sh


Images Built

Control Plane (8 images)

iam-service, tenant-service, config-service, audit-service, notification-service, billing-service, platform-registry, observability-api

Data Plane Java (6 images)

query-engine, catalog-service, semantic-layer, bi-service, data-plane-agent, governance-service

Data Plane Python (7 images)

ai-service, ml-service, data-quality-service, pipeline-service, ontology-service, ops-agent-service, infra-optimizer

Data Plane Node.js (1 image)

render-service

Frontend (7 images)

bi-workbench, ml-workbench, data-workbench, agentic-workbench, control-plane-ui, data-plane-ui, ops-workbench


Build and Push

# Build each service image
docker build \
    --tag ${ACR_URL}/matih/${service}:${IMAGE_TAG} \
    --tag ${ACR_URL}/matih/${service}:latest \
    --build-arg BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" \
    --build-arg VERSION="${IMAGE_TAG}" \
    ${service_path}
 
# Push to ACR
docker push ${ACR_URL}/matih/${service}:${IMAGE_TAG}
docker push ${ACR_URL}/matih/${service}:latest

Tenant Image Sync (04a)

For multi-tenant deployments where each tenant has its own ACR:

# Sync images from platform ACR to tenant ACR
az acr import \
    --name ${TENANT_ACR} \
    --source ${PLATFORM_ACR_URL}/matih/${service}:${IMAGE_TAG} \
    --image matih/${service}:${IMAGE_TAG}

Dependencies

  • Requires: 03-build-commons (commons libraries must be available)
  • Required by: 08-control-plane-services, 09-control-plane-frontend, 15a-matih-operator, 16-data-plane-services, 17-data-plane-frontend

Dependency Verification

# Check ACR for a representative service image
az acr repository show --name "${ACR_NAME}" \
    --image "matih/iam-service:latest"