Docker Compose yapılandırmasını kullanarak çok kapsayıcılı (önizleme) uygulama oluşturma

Not

Sepet kapsayıcıları (önizleme), App Service'te çok kapsayıcılı uygulamalarda başarılı olur. Başlamak için bkz. Öğretici: Azure Uygulaması Hizmetinde özel kapsayıcı için sepet kapsayıcısı yapılandırma (önizleme).

Kapsayıcılar için Web App, Docker görüntülerini esnek bir şekilde kullanmanızı sağlar. Bu hızlı başlangıçta, Docker Compose yapılandırması kullanarak Cloud Shell'de Kapsayıcılar için Web App'e çok kapsayıcılı bir uygulamanın (önizleme) nasıl dağıtılacağı gösterilmektedir.

Kapsayıcılar için Web App üzerinde örnek çok kapsayıcılı uygulama

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Bu makale, Azure CLI'nın 2.0.32 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Örneği indirme

Bu hızlı başlangıç için Docker Compose dosyasını kullanacaksınız. Yapılandırma dosyasına Azure Örnekleri sayfasından ulaşabilirsiniz.

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:

Cloud Shell'de bir quickstart dizini oluşturun ve o dizine geçin.

mkdir quickstart

cd $HOME/quickstart

Ardından, örnek uygulama deposunu quickstart dizininize kopyalamak için aşağıdaki komutu çalıştırın. Ardından multicontainerwordpress dizinine geçin.

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

cd multicontainerwordpress

Kaynak grubu oluşturma

Kaynak grubu, web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir kapsayıcıdır. Örneğin, daha sonra tek bir basit adımda kaynak grubun tamamını silmeyi seçebilirsiniz.

Cloud Shell içinde az group create komutuyla bir kaynak grubu oluşturun. Aşağıdaki örnek Orta Güney ABD konumunda myResourceGroup adlı bir kaynak grubu oluşturur. Standart katmanda Linux üzerinde App Service için desteklenen tüm konumları görüntülemek için az appservice list-locations --sku S1 --linux-workers-enabled komutunu çalıştırın.

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

Genellikle kaynak grubunuzu ve kaynakları kendinize yakın bir bölgede oluşturursunuz.

Komut tamamlandığında, bir JSON çıkışı size kaynak grubu özelliklerini gösterir.

Azure App Service planı oluşturma

Cloud Shell’de, kaynak grubunda az appservice plan create komutuyla bir App Service planı oluşturun.

Aşağıdaki örnek, Standart fiyatlandırma katmanı (--sku S1) ve bir Linux kapsayıcısı (--is-linux) içinde myAppServicePlan adlı bir App Service planı oluşturur.

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

App Service planı oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir:

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

Docker Compose uygulaması oluşturma

Not

Azure Uygulaması Hizmetlerinde Docker Compose şu anda Base64'e dönüştürüldüğünde 4.000 karakter sınırına sahiptir.

Cloud Shell terminalinde az webapp create komutunu kullanarak myAppServicePlan App Service planında çok kapsayıcılı bir web uygulaması oluşturun. app_name> benzersiz bir uygulama adıyla değiştirmeyi< unutmayın (geçerli karakterler a-z, 0-9ve -).

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

Web uygulaması oluşturulduğunda Azure CLI aşağıda yer alan çıktıdaki gibi bilgiler gösterir:

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

Uygulamaya göz atma

Dağıtılan uygulamaya göz atmak için (http://<app_name>.azurewebsites.net) adresine gidin. Uygulamanın yüklenmesi birkaç dakika sürebilir. Bir hatayla karşılaşırsanız birkaç dakika daha bekleyip tarayıcıyı yenileyin.

Kapsayıcılar için Web App üzerinde örnek çok kapsayıcılı uygulama

Tebrikler, Kapsayıcılar için Web App üzerinde çok kapsayıcılı bir uygulama oluşturdunuz.

Dağıtımı temizleme

Örnek betik çalıştırıldıktan sonra, kaynak grubunu ve onunla ilişkili tüm kaynakları kaldırmak için aşağıdaki komut kullanılabilir.

az group delete --name myResourceGroup

Sonraki adımlar