Creare un'app multi-contenitore (anteprima) con una configurazione di Docker Compose

Nota

I contenitori sidecar (anteprima) avranno esito positivo nelle app multi-contenitore in servizio app. Per iniziare, vedere Esercitazione: Configurare un contenitore sidecar per un contenitore personalizzato in app Azure Servizio (anteprima).

App Web per contenitori offre un modo flessibile per usare le immagini Docker. Questa guida di avvio rapido illustra come distribuire un'app multi-contenitore (anteprima) in App Web per contenitori in Cloud Shell con una configurazione di Docker Compose.

App multi-contenitore di esempio in App Web per contenitori

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

Questo articolo richiede la versione 2.0.32 o successiva dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Scaricare l'esempio

Per questa guida introduttiva, usare il file Compose da Docker. Il file di configurazione è disponibile negli Esempi di Azure.

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

In Cloud Shell creare una directory quickstart e passare ad essa.

mkdir quickstart

cd $HOME/quickstart

Eseguire quindi il comando seguente per clonare il repository dell'app di esempio nella directory quickstart. Quindi, passare alla directory multicontainerwordpress.

git clone https://github.com/Azure-Samples/multicontainerwordpress

cd multicontainerwordpress

Creare un gruppo di risorse

Un gruppo di risorse è un contenitore logico in cui vengono distribuite e gestite risorse di Azure come app Web, database e account di archiviazione. Ad esempio, si può scegliere in un secondo momento di eliminare l'intero gruppo di risorse in un unico semplice passaggio.

In Cloud Shell creare un gruppo di risorse con il comando az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località Stati Uniti centro-meridionali. Per visualizzare tutte le località supportate per il servizio app in Linux nel livello Standard, eseguire il comando az appservice list-locations --sku S1 --linux-workers-enabled.

az group create --name myResourceGroup --location "South Central US"

In genere, il gruppo di risorse e le risorse vengono creati in un'area vicina alla località dell'utente.

Al termine del comando, un output JSON visualizza le proprietà del gruppo di risorse.

Creare un piano di servizio app di Azure

In Cloud Shell creare un piano di servizio app nel gruppo di risorse con il comando az appservice plan create.

L'esempio seguente crea un piano di servizio app denominato myAppServicePlan nel piano tariffario Standard (--sku S1) e in un contenitore Linux (--is-linux).

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku S1 --is-linux

Al termine della creazione del piano di servizio app, l'interfaccia della riga di comando di Azure visualizza informazioni simili all'esempio seguente:

{
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "South Central US",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "South Central US",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
}

Creare un'app Docker Compose

Nota

Docker Compose in app Azure Services ha attualmente un limite di 4.000 caratteri quando viene convertito in Base64.

Nel terminale Cloud Shell creare un'app Web multi-contenitore nel piano di servizio app myAppServicePlan con il comando az webapp create. Non dimenticare di sostituire <app_name> con un nome univoco dell'app (i caratteri validi sono a-z, 0-9e -).

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml

Dopo la creazione dell'app Web, l'interfaccia della riga di comando di Azure mostra un output simile all'esempio seguente:

{
  "additionalProperties": {},
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app_name>.azurewebsites.net",
  "enabled": true,
  < JSON data removed for brevity. >
}

Passare all'app

Passare all'app distribuita all'indirizzo http://<app_name>.azurewebsites.net. Il caricamento dell'app può richiedere alcuni minuti. Se si riceve un errore, attendere qualche minuto e quindi aggiornare il browser.

App multi-contenitore di esempio in App Web per contenitori

La creazione di un'app multi-contenitore in App Web per contenitori è stata completata.

Pulire la distribuzione

Dopo l'esecuzione dello script di esempio, è possibile usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse ad esso associate.

az group delete --name myResourceGroup

Passaggi successivi