Workflow file: .github/workflows/azure-container-instance.yml
For pushes to the master
branch, the workflow will:
- Setup the build environment with respect to the selected java/graalvm version.
- Login to Docker registry.
- Login to Azure Command-Line Interface.
- Build, tag and push Docker image with Micronaut application to the Docker Registry.
- Deploy to Azure Container Instances.
- Login to Docker Registry
docker/login
- Setup GraalVM
DeLaGuardo/setup-graalvm
- Setup Azure CLI
azure/login
Add the following GitHub secrets:
Name | Description |
---|---|
DOCKER_USERNAME | Docker registry username. In case of Azure Container Registry, provide Azure username or Service principal ID, see more on Azure Container Registry authentication with service principals. |
DOCKER_PASSWORD | Docker registry password. In case of Azure Container Registry, provide Azure password or Service principal password. |
DOCKER_REPOSITORY_PATH | Docker image repository. In case of Azure Container Registry, for image micronaut.azurecr.io/foo/bar:0.1 , the foo is an image repository. |
DOCKER_REGISTRY_URL | Docker registry url. In case of Azure Container Registry use the Container registry login path, e.g. for the image micronaut.azurecr.io/foo/bar:0.1 , the micronaut.azurecr.io is a registry url. |
AZURE_CREDENTIALS | Azure Service Principal, see more on Azure/aci-deploy#Azure Service Principal for RBAC. |
AZURE_RESOURCE_GROUP | Azure Resource Group name, see more on Resource groups. |
The workflow file also contains additional configuration options that are now configured to:
Name | Description | Default value |
---|---|---|
AZURE_LOCATION | Location where the Container Instance will be created. See Resource availability for Azure Container Instances in Azure regions to find out what regions are supported. | westeurope |
AZURE_DNS_LABEL | The dns name label for container group with public IP. | Bank |
Call the rest api endpoint [AZURE_DNS_LABEL].[AZURE_LOCATION].azurecontainer.io:[PORT]/bank
:
curl http://Bank.westeurope.westeurope.azurecontainer.io:8080/bank