Dela via


Skapa en app med flera containrar (förhandsversion) med hjälp av en Docker Compose-konfiguration

Kommentar

Sidovagnscontainrar (förhandsversion) lyckas med appar med flera containrar i App Service. Kom igång genom att läsa Självstudie: Konfigurera en sidovagnscontainer för anpassad container i Azure App Service (förhandsversion).

Med Web App for Containers får du ett flexibelt sätt att använda Docker-avbildningar. Den här snabbstarten visar hur du distribuerar en app med flera containrar (förhandsversion) till Web App for Containers i Cloud Shell med hjälp av en Docker Compose-konfiguration.

Exempelapp med flera containrar i Web App for Containers

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

Den här artikeln kräver version 2.0.32 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Hämta exemplet

För den här snabbstarten använder du compose-filen från Docker. Konfigurationsfilen finns på Azure Samples (Azure-exempel).

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:

Skapa en snabbstartskatalog i Cloud Shell och ändra sedan till den.

mkdir quickstart

cd $HOME/quickstart

Kör sedan följande kommando för att klona lagringsplatsen för exempelprogrammet till din snabbstartskatalog. Ändra sedan till katalogen multicontainerwordpress.

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

cd multicontainerwordpress

Skapa en resursgrupp

En resursgrupp är en logisk container där Azure-resurser, till exempel webbappar, databaser och lagringskonton, distribueras och hanteras. Du kan exempelvis välja att ta bort hela resursgruppen i ett enkelt steg längre fram.

Skapa i Cloud Shell en resursgrupp med kommandot az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen South Central US (USA, södra centrala). Om du vill se alla platser som stöds för App Service på Linux på Standard-nivån kör du kommandot az appservice list-locations --sku S1 --linux-workers-enabled.

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

Du skapar vanligtvis din resursgrupp och resurserna i en region nära dig.

När kommandot har slutförts visar JSON-utdata resursgruppens egenskaper.

Skapa en Azure App Service-plan

Skapa i Cloud Shell en App Service-plan i resursgruppen med kommandot az appservice plan create.

I följande exempel skapas en App Service-plan med namnet myAppServicePlan i prisnivån Standard (--sku S1) och i en Linux-container (--is-linux).

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

När App Service-planen har skapats visas information av Azure CLI. Informationen ser ut ungefär som i följande exempel:

{
  "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
}

Skapa en Docker Compose-app

Kommentar

Docker Compose i Azure App Services har för närvarande en gräns på 4 000 tecken när den konverteras till Base64 för tillfället.

I Cloud Shell-terminalen skapar du en webbapp med flera containrar i myAppServicePlan App Service-planen med kommandot az webapp create. Glöm inte att ersätta <app_name> med ett unikt appnamn (giltiga tecken är a-z, 0-9och -).

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

När webbappen har skapats visar Azure CLI utdata liknande den i följande exempel:

{
  "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. >
}

Bläddra till appen

Bläddra till den distribuerade appen på (http://<app_name>.azurewebsites.net). Det kan ta några minuter att läsa in appen. Om du får ett fel väntar du ytterligare ett par minuter och uppdaterar sedan webbläsaren.

Exempelapp med flera containrar i Web App for Containers

Grattis! Du har skapat en app med flera containrar i Web App for Containers.

Rensa distribution

När exempelskriptet har körts kan följande kommando användas för att ta bort resursgruppen och alla resurser som är kopplade till den.

az group delete --name myResourceGroup

Nästa steg