In this post, let's see how we can build and deploy an Azure Container App from an Azure DevOps Pipeline.
Here for deployment, I am using az containerapp update.
trigger:
branches:
include:
- main
pool:
vmImage: ubuntu-latest
variables:
acrServiceConnection: <ACR_SERVICE_CONNECTION>
acrName: myacr.azurecr.io
imageRepositoryName: '<ACR_REPOSITORY_NAME>'
containerAppServiceConnection: '<CONTAINER_APP_SERVICE_CONNECTION>'
containerAppResourceGroup: '<CONTAINER_APP_RESOURCE_GROUP>'
containerAppName: '<CONTAINER_APP_NAME>'
name: $(Build.BuildId)
stages:
- stage: Build
displayName: Build
jobs:
- job: Build
displayName: Build Docker Image
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
containerRegistry: '$(acrServiceConnection)'
repository: '$(imageRepositoryName)'
command: 'buildAndPush'
Dockerfile: '**/Dockerfile'
buildContext: './'
tags: '$(Build.BuildId)'
- stage: Deploy
displayName: Deploy
dependsOn:
- Build
condition: succeeded('Build')
jobs:
- deployment: Deployment
displayName: Deploy to Container App
# Requires an environment named 'Development'
environment: Development
strategy:
runOnce:
deploy:
steps:
- task: AzureCLI@2
displayName: Update Container App
inputs:
azureSubscription: '$(containerAppServiceConnection)'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az containerapp update \
--name $(containerAppName) \
--resource-group $(containerAppResourceGroup) \
--image '$(acrName)/$(imageRepositoryName):$(Build.BuildId)' \
--set-env-vars \
'MongoDB__ConnectionString=<VALUE>' \
'ServiceBus__ConnectionString=<VALUE>' \
--min-replicas 1 \
--max-replicas 1
Azure DevOps already has an Azure Container Apps Deployment Task AzureContainerApps@1, which I haven't used, but do check it out.
Hope this helps.
Happy Coding.
Regards,
Jaliya
No comments:
Post a Comment