أنشئ تطبيقاً متعدد الحاويات (معاينة) باستخدام تهيئة Docker Compose

إشعار

ستنجح حاويات Sidecar (معاينة) في تطبيقات متعددة الحاويات في App Service. للبدء، راجع البرنامج التعليمي: تكوين حاوية sidecar للحاوية المخصصة في Azure App Service (معاينة).

يوفر تطبيق الويب للحاوياتطريقة مرنة لاستخدام صور Docker. يوضح هذا Quickstart كيفية نشر تطبيق متعدد الحاويات (معاينة) لتطبيق Web App للحاويات في Cloud Shell باستخدام تكوين Docker Compose.

عينة التطبيق متعدد الحاويات على تطبيق ويب للحاويات

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

تتطلب هذه المقالة الإصدار 2.0.32 أو أحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

تنزيل العينة

بالنسبة إلى هذا التشغيل السريع، يمكنك استخدام ملف الإنشاء من Docker. يمكن العثور على ملف التكوين في عينات 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:

في Cloud Shell، قم بإنشاء دليل التشغيل السريع ثم انتقل إليه.

mkdir quickstart

cd $HOME/quickstart

بعد ذلك، قم بتشغيل الأمر التالي لاستنساخ نموذج مستودع التطبيق إلى دليل التشغيل السريع الخاص بك. ثم غيّر إلى multicontainerwordpress الدليل.

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

cd multicontainerwordpress

إنشاء مجموعة موارد

مجموعة الموارد هي حاوية منطقية يتم فيها نشر موارد Azure وإدارتها، مثل تطبيقات الويب وقواعد البيانات وحسابات التخزين. على سبيل المثال، يمكنك اختيار حذف مجموعة الموارد بأكملها في خطوة واحدة بسيطة لاحقاً.

في Cloud Shell، أنشئ مجموعة موارد باستخدام الأمر az group create. ينشئ المثال التالي مجموعة موارد تسمى myResourceGroup في منطقة جنوب وسط الولايات المتحدة. لمشاهدة جميع المواقع المدعومة لخدمة التطبيقات على Linux في المستوى القياسي، قم بتشغيلaz appservice list-locations --sku S1 --linux-workers-enabled الأمر.

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

يمكنك بشكل عام إنشاء مجموعة مواردك والموارد في منطقة قريبة منك.

عند انتهاء الأمر، يظهر لك إخراج JSON خصائص مجموعة الموارد.

إنشاء خطة خدمة تطبيق Azure

في Cloud Shell، أنشئ خطة خدمة التطبيق في مجموعة الموارد باستخدام الأمر az appservice plan create.

ينشئ المثال التالي خطة خدمة التطبيق المسماة myAppServicePlan في مستويات التسعير القياسي(--sku S1) وفي حاوية Linux (--is-linux).

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

عند إنشاء خطة خدمة التطبيق، يعرض Azure CLI معلومات مشابهة للمثال التالي:

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

إشعار

يحتوي Docker Compose على Azure App Services حاليا على حد 4000 حرف عند تحويله إلى Base64 في هذا الوقت.

في محطة Cloud Shell الطرفية، أنشئ تطبيق ويب متعدد الحاويات في myAppServicePlan خطة خدمة التطبيق باستخدام الأمر az webapp create. لا تنس استبدال <app_name> باسم تطبيق فريد (الأحرف الصالحة هي a-z، و0-9، و-).

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

عند إنشاء تطبيق ويب، يعرض Azure CLI الإخراج مشابهًا للمثال التالي:

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

استعرض التطبيق

استعراض للوصول إلى التطبيق المنشور على (http://<app_name>.azurewebsites.net). قد يستغرق تحميل التطبيق بضع دقائق. إذا تلقيت خطأ، فانتظر بضع دقائق إضافية ثم قم بتحديث المستعرض.

عينة التطبيق متعدد الحاويات على تطبيق ويب للحاويات

تهانينا، لقد أنشأت تطبيقاً متعدد الحاويات في تطبيق الويب للحاويات.

تنظيف النشر

بعد تشغيل نموذج البرنامج النصي، يمكن استخدام الأمر التالي لإزالة مجموعة الموارد وكافة الموارد المقترنة بها.

az group delete --name myResourceGroup

الخطوات التالية