- Restore blue PageHeader on Dashboard (/app-components) - Update homepage (/) with subtle header design without blue bar - Add uniform PageHeader styling to application edit page - Fix Rapporten link on homepage to point to /reports overview - Improve header descriptions spacing for better readability
8.0 KiB
Azure Container Registry - Quick Start Guide
Snelstart guide om zelf Azure Container Registry aan te maken en te configureren voor productie.
🚀 Stap 1: Azure Container Registry Aanmaken
Optie A: Met Script (Aanbevolen)
# Run het script
./scripts/create-acr.sh
# Of met custom parameters:
./scripts/create-acr.sh rg-cmdb-gui zuyderlandcmdbacr westeurope Basic
Het script doet automatisch:
- ✅ Checkt of je ingelogd bent bij Azure
- ✅ Maakt resource group aan (als nodig)
- ✅ Controleert of ACR naam beschikbaar is
- ✅ Maakt ACR aan met Basic SKU
- ✅ Toont credentials
- ✅ Test Docker login
Optie B: Handmatig via Azure CLI
# Login bij Azure
az login
# Resource group aanmaken
az group create --name rg-cmdb-gui --location westeurope
# Check of naam beschikbaar is
az acr check-name --name zuyderlandcmdbacr
# ACR aanmaken (Basic SKU - ~€5/maand)
az acr create \
--resource-group rg-cmdb-gui \
--name zuyderlandcmdbacr \
--sku Basic \
--admin-enabled true
# Credentials ophalen
az acr credential show --name zuyderlandcmdbacr
Optie C: Via Azure Portal
- Ga naar Azure Portal
- Klik "Create a resource"
- Zoek "Container Registry"
- Klik "Create"
- Vul in:
- Resource group:
rg-cmdb-gui(of maak nieuwe) - Registry name:
zuyderlandcmdbacr(moet uniek zijn, alleen kleine letters en cijfers, geen streepjes) - Location:
West Europe - SKU:
Basic⭐ (aanbevolen - ~€5/maand) - Domain name label scope:
- "Unsecure" ⭐ (aanbevolen) - DNS naam wordt:
zuyderlandcmdbacr.azurecr.io - "Resource Group Reuse" (voor extra security) - DNS naam wordt:
zuyderlandcmdbacr-abc123.azurecr.io(met hash) - ⚠️ Let op: Als je een hash gebruikt, moet je alle configuraties aanpassen met de volledige DNS naam!
- "Unsecure" ⭐ (aanbevolen) - DNS naam wordt:
- Role assignment permissions mode:
- "RBAC Registry Permissions" ⭐ (aanbevolen - eenvoudigst)
- "RBAC Registry + ABAC Repository Permissions" (alleen als je per-repository permissions nodig hebt)
- Resource group:
- Klik "Review + create" → "Create"
💡 Aanbeveling: Kies "Unsecure" voor de eenvoudigste setup. Zie docs/AZURE-ACR-DNL-SCOPE.md voor details.
Noteer je ACR naam! Je hebt deze nodig voor de volgende stappen.
🔧 Stap 2: Pipeline Variabelen Aanpassen
Pas azure-pipelines.yml aan met jouw ACR naam:
variables:
# Pas deze aan naar jouw ACR naam
acrName: 'zuyderlandcmdbacr' # ← Jouw ACR naam hier
repositoryName: 'cmdb-insight'
# Service connection naam (maak je in volgende stap)
dockerRegistryServiceConnection: 'zuyderland-cmdb-acr-connection'
imageTag: '$(Build.BuildId)'
Commit en push:
git add azure-pipelines.yml
git commit -m "Configure ACR in pipeline"
git push origin main
🔗 Stap 3: Service Connection Aanmaken in Azure DevOps
Deze connection geeft Azure DevOps toegang tot je ACR.
- Ga naar je Azure DevOps project
- Klik op ⚙️ Project Settings (onderaan links)
- Ga naar Service connections (onder Pipelines)
- Klik op "New service connection"
- Kies "Docker Registry"
- Kies "Azure Container Registry"
- Vul in:
- Azure subscription: Selecteer je Azure subscription
- Azure container registry: Selecteer je ACR (bijv.
zuyderlandcmdbacr) - Service connection name:
zuyderland-cmdb-acr-connection - Description: Optioneel (bijv. "ACR for CMDB GUI")
- Klik "Save"
✅ Noteer de service connection naam! Deze moet overeenkomen met dockerRegistryServiceConnection in azure-pipelines.yml.
🎯 Stap 4: Pipeline Aanmaken en Run
- Ga naar je Azure DevOps project
- Klik op Pipelines (links in het menu)
- Klik op "New pipeline" of "Create Pipeline"
- Kies "Azure Repos Git" (of waar je code staat)
- Selecteer je repository: "CMDB Insight"
- Kies "Existing Azure Pipelines YAML file"
- Selecteer:
- Branch:
main - Path:
/azure-pipelines.yml
- Branch:
- Klik "Continue"
- Review de pipeline configuratie
- Klik "Run" om de pipeline te starten
✅ Stap 5: Verifiëren
In Azure Portal:
- Ga naar je Container Registry (
zuyderlandcmdbacr) - Klik op "Repositories"
- Je zou moeten zien:
cmdb-insight/backendcmdb-insight/frontend
- Klik op een repository om de tags te zien (bijv.
latest,123)
Via Azure CLI:
# Lijst repositories
az acr repository list --name zuyderlandcmdbacr
# Lijst tags voor backend
az acr repository show-tags --name zuyderlandcmdbacr --repository cmdb-insight/backend
# Lijst tags voor frontend
az acr repository show-tags --name zuyderlandcmdbacr --repository cmdb-insight/frontend
🐳 Stap 6: Images Lokaal Testen (Optioneel)
# Login bij ACR
az acr login --name zuyderlandcmdbacr
# Pull images
docker pull zuyderlandcmdbacr.azurecr.io/cmdb-insight/backend:latest
docker pull zuyderlandcmdbacr.azurecr.io/cmdb-insight/frontend:latest
# Test run (met docker-compose)
docker-compose -f docker-compose.prod.acr.yml pull
docker-compose -f docker-compose.prod.acr.yml up -d
📋 Checklist
- Azure Container Registry aangemaakt
- ACR naam genoteerd
azure-pipelines.ymlvariabelen aangepast- Service Connection aangemaakt in Azure DevOps
- Pipeline aangemaakt en gerund
- Images succesvol gebouwd en gepusht
- Images geverifieerd in Azure Portal
🔄 Automatische Triggers
De pipeline triggert automatisch bij:
- Push naar
mainbranch → Bouwtlatesttag - Git tags die beginnen met
v*→ Bouwt versie tag (bijv.v1.0.0)
Voorbeeld:
# Tag aanmaken en pushen
git tag v1.0.0
git push origin v1.0.0
# → Pipeline triggert automatisch en bouwt versie 1.0.0
🚨 Troubleshooting
Pipeline Fails: "Service connection not found"
Oplossing:
- Controleer of de service connection naam in
azure-pipelines.ymlovereenkomt met de naam in Azure DevOps - Ga naar Project Settings → Service connections en verifieer de naam
Pipeline Fails: "ACR not found"
Oplossing:
- Controleer of de
acrNamevariabele correct is inazure-pipelines.yml - Verifieer dat de ACR bestaat:
az acr list
Pipeline Fails: "Permission denied"
Oplossing:
- Controleer of de service connection de juiste permissions heeft
- Verifieer dat je Azure subscription toegang heeft tot de ACR
- Probeer de service connection opnieuw aan te maken
ACR Naam Niet Beschikbaar
Oplossing:
- ACR namen moeten uniek zijn wereldwijd
- Probeer een andere naam:
zuyderlandcmdbacr1zuyderlandcmdbprodcmdbzuyderlandacrzuyderlandcmdbgui
💰 Kosten & SKU Keuze
Aanbeveling: Basic SKU ⭐ (~€5/maand)
Basic SKU (Aanbevolen voor jouw situatie):
- ✅ 10GB storage - Ruim voldoende voor backend + frontend met meerdere versies
- ✅ 1GB/day webhook throughput - Voldoende voor CI/CD
- ✅ Unlimited pulls - Geen extra kosten
- ✅ RBAC support - Role-based access control
- ✅ Kosten: ~€5/maand
Standard SKU (~€20/maand):
- 100GB storage
- 10GB/day webhook throughput
- Geo-replicatie
- Niet nodig voor jouw situatie
Premium SKU (~€50/maand):
- 500GB storage
- Security scanning
- Private endpoints
- Overkill voor 20 gebruikers
Voor jouw situatie (20 gebruikers): Basic is perfect! ✅
📚 Zie docs/AZURE-ACR-PRICING.md voor volledige vergelijking.
📚 Meer Informatie
- Volledige ACR Guide:
docs/AZURE-CONTAINER-REGISTRY.md - Azure DevOps Setup:
docs/AZURE-DEVOPS-SETUP.md - Deployment Guide:
docs/PRODUCTION-DEPLOYMENT.md
🎯 Volgende Stappen
Nu je images in ACR staan, kun je ze deployen naar:
- Azure Container Instances (ACI) - Eenvoudig, snel
- Azure App Service (Container) - Managed service
- Azure Kubernetes Service (AKS) - Voor complexere setups
- VM met Docker Compose - Volledige controle
Zie docs/AZURE-DEPLOYMENT-SUMMARY.md voor deployment opties.