Microsoft.ContainerInstance containerGroups 2018-04-01

Bicep resource definition

The containerGroups resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerInstance/containerGroups resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.ContainerInstance/containerGroups@2018-04-01' = {
  location: 'string'
  name: 'string'
  properties: {
    containers: [
      {
        name: 'string'
        properties: {
          command: [
            'string'
          ]
          environmentVariables: [
            {
              name: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          ports: [
            {
              port: int
              protocol: 'string'
            }
          ]
          resources: {
            limits: {
              cpu: int
              memoryInGB: int
            }
            requests: {
              cpu: int
              memoryInGB: int
            }
          }
          volumeMounts: [
            {
              mountPath: 'string'
              name: 'string'
              readOnly: bool
            }
          ]
        }
      }
    ]
    imageRegistryCredentials: [
      {
        password: 'string'
        server: 'string'
        username: 'string'
      }
    ]
    ipAddress: {
      dnsNameLabel: 'string'
      ip: 'string'
      ports: [
        {
          port: int
          protocol: 'string'
        }
      ]
      type: 'string'
    }
    osType: 'string'
    restartPolicy: 'string'
    volumes: [
      {
        azureFile: {
          readOnly: bool
          shareName: 'string'
          storageAccountKey: 'string'
          storageAccountName: 'string'
        }
        emptyDir: any(Azure.Bicep.Types.Concrete.AnyType)
        gitRepo: {
          directory: 'string'
          repository: 'string'
          revision: 'string'
        }
        name: 'string'
        secret: {
          {customized property}: 'string'
        }
      }
    ]
  }
  tags: {
    {customized property}: 'string'
  }
}

Property values

AzureFileVolume

Name Description Value
readOnly The flag indicating whether the Azure File shared mounted as a volume is read-only. bool
shareName The name of the Azure File share to be mounted as a volume. string (required)
storageAccountKey The storage account access key used to access the Azure File share. string
storageAccountName The name of the storage account that contains the Azure File share. string (required)

Container

Name Description Value
name The user-provided name of the container instance. string (required)
properties The properties of the container instance. ContainerProperties (required)

ContainerGroupProperties

Name Description Value
containers The containers within the container group. Container[] (required)
imageRegistryCredentials The image registry credentials by which the container group is created from. ImageRegistryCredential[]
ipAddress The IP address type of the container group. IpAddress
osType The operating system type required by the containers in the container group. 'Linux'
'Windows' (required)
restartPolicy Restart policy for all containers within the container group.
- Always Always restart
- OnFailure Restart on failure
- Never Never restart
'Always'
'Never'
'OnFailure'
volumes The list of volumes that can be mounted by containers in this container group. Volume[]

ContainerPort

Name Description Value
port The port number exposed within the container group. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ContainerProperties

Name Description Value
command The commands to execute within the container instance in exec form. string[]
environmentVariables The environment variables to set in the container instance. EnvironmentVariable[]
image The name of the image used to create the container instance. string (required)
ports The exposed ports on the container instance. ContainerPort[]
resources The resource requirements of the container instance. ResourceRequirements (required)
volumeMounts The volume mounts available to the container instance. VolumeMount[]

EnvironmentVariable

Name Description Value
name The name of the environment variable. string (required)
value The value of the environment variable. string (required)

GitRepoVolume

Name Description Value
directory Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. string
repository Repository URL string (required)
revision Commit hash for the specified revision. string

ImageRegistryCredential

Name Description Value
password The password for the private registry. string
server The Docker image registry server without a protocol such as "http" and "https". string (required)
username The username for the private registry. string (required)

IpAddress

Name Description Value
dnsNameLabel The Dns name label for the IP. string
ip The IP exposed to the public internet. string
ports The list of ports exposed on the container group. Port[] (required)
type Specifies if the IP is exposed to the public internet. 'Public' (required)

Microsoft.ContainerInstance/containerGroups

Name Description Value
location The resource location. string
name The resource name string (required)
properties ContainerGroupProperties (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates

Port

Name Description Value
port The port number. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ResourceLimits

Name Description Value
cpu The CPU limit of this container instance. int
memoryInGB The memory limit in GB of this container instance. int

ResourceRequests

Name Description Value
cpu The CPU request of this container instance. int (required)
memoryInGB The memory request in GB of this container instance. int (required)

ResourceRequirements

Name Description Value
limits The resource limits of this container instance. ResourceLimits
requests The resource requests of this container instance. ResourceRequests (required)

ResourceTags

Name Description Value

SecretVolume

Name Description Value

Volume

Name Description Value
azureFile The Azure File volume. AzureFileVolume
emptyDir The empty directory volume. any
gitRepo The git repo volume. GitRepoVolume
name The name of the volume. string (required)
secret The secret volume. SecretVolume

VolumeMount

Name Description Value
mountPath The path within the container where the volume should be mounted. Must not contain colon (:). string (required)
name The name of the volume mount. string (required)
readOnly The flag indicating whether the volume mount is read-only. bool

Quickstart samples

The following quickstart samples deploy this resource type.

Bicep File Description
Azure Container Instances - BC with SQL Server and IIS Deploy a single Windows container with a fully featured self-contained Microsoft Dynamics 365 Business Central environment on Azure Container Instances.
Azure Container Instances - container with secrets Deploy a Linux container that has a secret volume using Azure Container Instances.
Azure Container Instances - Linux container with public IP Deploy a single Linux container accessible via a public IP using Azure Container Instances.
Azure Container Instances - VNet Deploy a container instance into an Azure virtual network.
Create a WordPress site This template creates a WordPress site on Container Instance
Create an on-demand SFTP Server with persistent storage This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI).
Create Application Gateway with Certificates This template shows how to generate Key Vault self-signed certificates, then reference from Application Gateway.
Front Door Standard/Premium with Azure Container Instances This template creates a Front Door Standard/Premium with a container group.
Front Door with Container Instances and Application Gateway This template creates a Front Door Standard/Premium with a container group and Application Gateway.
SQL Server availability group on AKS This creates a new AKS Cluster and then deploys SQL Server availability groups into it using a CNAB package deployed using Duffle and ACI

ARM template resource definition

The containerGroups resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerInstance/containerGroups resource, add the following JSON to your template.

{
  "type": "Microsoft.ContainerInstance/containerGroups",
  "apiVersion": "2018-04-01",
  "name": "string",
  "location": "string",
  "properties": {
    "containers": [
      {
        "name": "string",
        "properties": {
          "command": [ "string" ],
          "environmentVariables": [
            {
              "name": "string",
              "value": "string"
            }
          ],
          "image": "string",
          "ports": [
            {
              "port": "int",
              "protocol": "string"
            }
          ],
          "resources": {
            "limits": {
              "cpu": "int",
              "memoryInGB": "int"
            },
            "requests": {
              "cpu": "int",
              "memoryInGB": "int"
            }
          },
          "volumeMounts": [
            {
              "mountPath": "string",
              "name": "string",
              "readOnly": "bool"
            }
          ]
        }
      }
    ],
    "imageRegistryCredentials": [
      {
        "password": "string",
        "server": "string",
        "username": "string"
      }
    ],
    "ipAddress": {
      "dnsNameLabel": "string",
      "ip": "string",
      "ports": [
        {
          "port": "int",
          "protocol": "string"
        }
      ],
      "type": "string"
    },
    "osType": "string",
    "restartPolicy": "string",
    "volumes": [
      {
        "azureFile": {
          "readOnly": "bool",
          "shareName": "string",
          "storageAccountKey": "string",
          "storageAccountName": "string"
        },
        "emptyDir": {},
        "gitRepo": {
          "directory": "string",
          "repository": "string",
          "revision": "string"
        },
        "name": "string",
        "secret": {
          "{customized property}": "string"
        }
      }
    ]
  },
  "tags": {
    "{customized property}": "string"
  }
}

Property values

AzureFileVolume

Name Description Value
readOnly The flag indicating whether the Azure File shared mounted as a volume is read-only. bool
shareName The name of the Azure File share to be mounted as a volume. string (required)
storageAccountKey The storage account access key used to access the Azure File share. string
storageAccountName The name of the storage account that contains the Azure File share. string (required)

Container

Name Description Value
name The user-provided name of the container instance. string (required)
properties The properties of the container instance. ContainerProperties (required)

ContainerGroupProperties

Name Description Value
containers The containers within the container group. Container[] (required)
imageRegistryCredentials The image registry credentials by which the container group is created from. ImageRegistryCredential[]
ipAddress The IP address type of the container group. IpAddress
osType The operating system type required by the containers in the container group. 'Linux'
'Windows' (required)
restartPolicy Restart policy for all containers within the container group.
- Always Always restart
- OnFailure Restart on failure
- Never Never restart
'Always'
'Never'
'OnFailure'
volumes The list of volumes that can be mounted by containers in this container group. Volume[]

ContainerPort

Name Description Value
port The port number exposed within the container group. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ContainerProperties

Name Description Value
command The commands to execute within the container instance in exec form. string[]
environmentVariables The environment variables to set in the container instance. EnvironmentVariable[]
image The name of the image used to create the container instance. string (required)
ports The exposed ports on the container instance. ContainerPort[]
resources The resource requirements of the container instance. ResourceRequirements (required)
volumeMounts The volume mounts available to the container instance. VolumeMount[]

EnvironmentVariable

Name Description Value
name The name of the environment variable. string (required)
value The value of the environment variable. string (required)

GitRepoVolume

Name Description Value
directory Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. string
repository Repository URL string (required)
revision Commit hash for the specified revision. string

ImageRegistryCredential

Name Description Value
password The password for the private registry. string
server The Docker image registry server without a protocol such as "http" and "https". string (required)
username The username for the private registry. string (required)

IpAddress

Name Description Value
dnsNameLabel The Dns name label for the IP. string
ip The IP exposed to the public internet. string
ports The list of ports exposed on the container group. Port[] (required)
type Specifies if the IP is exposed to the public internet. 'Public' (required)

Microsoft.ContainerInstance/containerGroups

Name Description Value
apiVersion The api version '2018-04-01'
location The resource location. string
name The resource name string (required)
properties ContainerGroupProperties (required)
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.ContainerInstance/containerGroups'

Port

Name Description Value
port The port number. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ResourceLimits

Name Description Value
cpu The CPU limit of this container instance. int
memoryInGB The memory limit in GB of this container instance. int

ResourceRequests

Name Description Value
cpu The CPU request of this container instance. int (required)
memoryInGB The memory request in GB of this container instance. int (required)

ResourceRequirements

Name Description Value
limits The resource limits of this container instance. ResourceLimits
requests The resource requests of this container instance. ResourceRequests (required)

ResourceTags

Name Description Value

SecretVolume

Name Description Value

Volume

Name Description Value
azureFile The Azure File volume. AzureFileVolume
emptyDir The empty directory volume. any
gitRepo The git repo volume. GitRepoVolume
name The name of the volume. string (required)
secret The secret volume. SecretVolume

VolumeMount

Name Description Value
mountPath The path within the container where the volume should be mounted. Must not contain colon (:). string (required)
name The name of the volume mount. string (required)
readOnly The flag indicating whether the volume mount is read-only. bool

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Azure Container Instances - BC with SQL Server and IIS

Deploy to Azure
Deploy a single Windows container with a fully featured self-contained Microsoft Dynamics 365 Business Central environment on Azure Container Instances.
Azure Container Instances - container with health probe

Deploy to Azure
Deploy a Linux container that has a health probe using Azure Container Instances.
Azure Container Instances - container with secrets

Deploy to Azure
Deploy a Linux container that has a secret volume using Azure Container Instances.
Azure Container Instances - container with secure envVar

Deploy to Azure
Deploy a Linux container that has a secure environment variable using Azure Container Instances.
Azure Container Instances - Linux container with emptyDir

Deploy to Azure
Deploy two Linux containers that share an emptyDir volume using Azure Container Instances.
Azure Container Instances - Linux container with gitRepo

Deploy to Azure
Deploy a Linux container that uses an gitRepo volume using Azure Container Instances.
Azure Container Instances - Linux container with public IP

Deploy to Azure
Deploy a single Linux container accessible via a public IP using Azure Container Instances.
Azure Container Instances - VNet

Deploy to Azure
Deploy a container instance into an Azure virtual network.
Create a Storage Account File Share via Containers

Deploy to Azure
This template creates a storage account and a file share via azure-cli in a Container Instance
Create a WordPress site

Deploy to Azure
This template creates a WordPress site on Container Instance
Create a WordPress site in a virtual network

Deploy to Azure
This template creates a WordPress site on Container Instance in a virtual network. And output a public site FQDN which could access WordPress site.
Create an on-demand SFTP Server with persistent storage

Deploy to Azure
This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI).
Create Application Gateway with Certificates

Deploy to Azure
This template shows how to generate Key Vault self-signed certificates, then reference from Application Gateway.
Front Door Standard/Premium with Azure Container Instances

Deploy to Azure
This template creates a Front Door Standard/Premium with a container group.
Front Door with Container Instances and Application Gateway

Deploy to Azure
This template creates a Front Door Standard/Premium with a container group and Application Gateway.
On-demand SFTP Server using an existing storage account

Deploy to Azure
This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI).
SQL Server availability group on AKS

Deploy to Azure
This creates a new AKS Cluster and then deploys SQL Server availability groups into it using a CNAB package deployed using Duffle and ACI
UDP Container in ACI

Deploy to Azure
This templates creates an ACI resource and exposes a container through UDP

Terraform (AzAPI provider) resource definition

The containerGroups resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerInstance/containerGroups resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ContainerInstance/containerGroups@2018-04-01"
  name = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      containers = [
        {
          name = "string"
          properties = {
            command = [
              "string"
            ]
            environmentVariables = [
              {
                name = "string"
                value = "string"
              }
            ]
            image = "string"
            ports = [
              {
                port = int
                protocol = "string"
              }
            ]
            resources = {
              limits = {
                cpu = int
                memoryInGB = int
              }
              requests = {
                cpu = int
                memoryInGB = int
              }
            }
            volumeMounts = [
              {
                mountPath = "string"
                name = "string"
                readOnly = bool
              }
            ]
          }
        }
      ]
      imageRegistryCredentials = [
        {
          password = "string"
          server = "string"
          username = "string"
        }
      ]
      ipAddress = {
        dnsNameLabel = "string"
        ip = "string"
        ports = [
          {
            port = int
            protocol = "string"
          }
        ]
        type = "string"
      }
      osType = "string"
      restartPolicy = "string"
      volumes = [
        {
          azureFile = {
            readOnly = bool
            shareName = "string"
            storageAccountKey = "string"
            storageAccountName = "string"
          }
          emptyDir = ?
          gitRepo = {
            directory = "string"
            repository = "string"
            revision = "string"
          }
          name = "string"
          secret = {
            {customized property} = "string"
          }
        }
      ]
    }
  })
}

Property values

AzureFileVolume

Name Description Value
readOnly The flag indicating whether the Azure File shared mounted as a volume is read-only. bool
shareName The name of the Azure File share to be mounted as a volume. string (required)
storageAccountKey The storage account access key used to access the Azure File share. string
storageAccountName The name of the storage account that contains the Azure File share. string (required)

Container

Name Description Value
name The user-provided name of the container instance. string (required)
properties The properties of the container instance. ContainerProperties (required)

ContainerGroupProperties

Name Description Value
containers The containers within the container group. Container[] (required)
imageRegistryCredentials The image registry credentials by which the container group is created from. ImageRegistryCredential[]
ipAddress The IP address type of the container group. IpAddress
osType The operating system type required by the containers in the container group. 'Linux'
'Windows' (required)
restartPolicy Restart policy for all containers within the container group.
- Always Always restart
- OnFailure Restart on failure
- Never Never restart
'Always'
'Never'
'OnFailure'
volumes The list of volumes that can be mounted by containers in this container group. Volume[]

ContainerPort

Name Description Value
port The port number exposed within the container group. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ContainerProperties

Name Description Value
command The commands to execute within the container instance in exec form. string[]
environmentVariables The environment variables to set in the container instance. EnvironmentVariable[]
image The name of the image used to create the container instance. string (required)
ports The exposed ports on the container instance. ContainerPort[]
resources The resource requirements of the container instance. ResourceRequirements (required)
volumeMounts The volume mounts available to the container instance. VolumeMount[]

EnvironmentVariable

Name Description Value
name The name of the environment variable. string (required)
value The value of the environment variable. string (required)

GitRepoVolume

Name Description Value
directory Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. string
repository Repository URL string (required)
revision Commit hash for the specified revision. string

ImageRegistryCredential

Name Description Value
password The password for the private registry. string
server The Docker image registry server without a protocol such as "http" and "https". string (required)
username The username for the private registry. string (required)

IpAddress

Name Description Value
dnsNameLabel The Dns name label for the IP. string
ip The IP exposed to the public internet. string
ports The list of ports exposed on the container group. Port[] (required)
type Specifies if the IP is exposed to the public internet. 'Public' (required)

Microsoft.ContainerInstance/containerGroups

Name Description Value
location The resource location. string
name The resource name string (required)
properties ContainerGroupProperties (required)
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.ContainerInstance/containerGroups@2018-04-01"

Port

Name Description Value
port The port number. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ResourceLimits

Name Description Value
cpu The CPU limit of this container instance. int
memoryInGB The memory limit in GB of this container instance. int

ResourceRequests

Name Description Value
cpu The CPU request of this container instance. int (required)
memoryInGB The memory request in GB of this container instance. int (required)

ResourceRequirements

Name Description Value
limits The resource limits of this container instance. ResourceLimits
requests The resource requests of this container instance. ResourceRequests (required)

ResourceTags

Name Description Value

SecretVolume

Name Description Value

Volume

Name Description Value
azureFile The Azure File volume. AzureFileVolume
emptyDir The empty directory volume. any
gitRepo The git repo volume. GitRepoVolume
name The name of the volume. string (required)
secret The secret volume. SecretVolume

VolumeMount

Name Description Value
mountPath The path within the container where the volume should be mounted. Must not contain colon (:). string (required)
name The name of the volume mount. string (required)
readOnly The flag indicating whether the volume mount is read-only. bool