تحميل وحدة تخزين gitRepo في مثيلات حاوية Azure

تعرّف على كيفية إدخال وحدة تخزين gitRepoلنسخ مستودع Git في مثيلات الحاوية.

إشعار

يقتصر إدخال وحدة تخزين gitRepo حاليًّا على حاويات Linux. في حين أننا نعمل على جلب جميع الميزات إلى حاويات Windows، يمكنك العثور على الاختلافات الحالية للنظام الأساسي في «نظرة عامة».

وحدة تخزين gitRepo

يقوم وحدة تخزين gitRepo بتحميل دليل واستنساخ مستودع Git المحدد فيه أثناء إنشاء الحاوية. باستخدام وحدة تخزين gitRepo في مثيلات الحاوية الخاصة بك، يمكنك تجنب إضافة التعليمات البرمجية للقيام بذلك في تطبيقاتك.

عند إدخال وحدة تخزين gitRepo يمكنك تعيين ثلاث خصائص لتكوين وحدة التخزين:

الخاصية المطلوب الوصف
repository ‏‏نعم‬ عنوان URL الكامل، بما في ذلك http:// أو https:// التابع لمستودع Git الذي سيتم نسخه.
directory لا الدليل الذي ينبغي نسخ المستودع فيه. يجب ألا يحتوي المسار على أو يبدأ بـ "..". إذا حددت "."، يتم نسخ المستودع في دليل وحدة التخزين. وإلا، يُنسَخ مستودع Git في دليل فرعي للاسم المُحدد ضمن دليل وحدة التخزين.
revision لا تجزئة الالتزام بالمراجعة التي سيتم نسخها. إذا لم يتم التعيين HEAD، تُنسخ المُراجعة.

حمّل وحدة تخزين gitRepo: واجهة سطر الأوامر من Microsoft Azure

لتحميل وحدة تخزين gitRepo عند نشر مثيلات الحاوية من خلال واجهة سطر الأوامر من Microsoft Azure وفّر --gitrepo-urlومعلمات --gitrepo-mount-pathإلى الأمر«إنشاء حاوية az». يمكنك بشكل اختياري تحديد الدليل داخل وحدة التخزين لنسخها في (--gitrepo-dir) وتجزئة الالتزام للمراجعة المراد نسخها (--gitrepo-revision).

ينسخ هذا الأمر النموذجي تطبيق نموذج Microsoft aci-helloworld في الخيار/mnt/aci-helloworld داخل مثيل الحاوية:

az container create \
    --resource-group myResourceGroup \
    --name hellogitrepo \
    --image mcr.microsoft.com/azuredocs/aci-helloworld \
    --dns-name-label aci-demo \
    --ports 80 \
    --gitrepo-url https://github.com/Azure-Samples/aci-helloworld \
    --gitrepo-mount-path /mnt/aci-helloworld

للتحقق من تحميل وحدة التخزين gitRepo، شغّل shell في الحاوية من خلال az container execوأدرج الدليل:

az container exec --resource-group myResourceGroup --name hellogitrepo --exec-command /bin/sh
/usr/src/app # ls -l /mnt/aci-helloworld/
total 16
-rw-r--r--    1 root     root           144 Apr 16 16:35 Dockerfile
-rw-r--r--    1 root     root          1162 Apr 16 16:35 LICENSE
-rw-r--r--    1 root     root          1237 Apr 16 16:35 README.md
drwxr-xr-x    2 root     root          4096 Apr 16 16:35 app

تحميل وحدة تخزين gitRepo: Azure Resource Manager

لتحميل وحدة تخزين gitRepo عند نشر مثيلات حاوية مع قالب Azure Resource Manager، أولًا تعبئة قسمvolumesالصفيف في مجموعة الحاويةpropertiesللقالب. بعد ذلك، لكل حاوية في مجموعة الحاوية التي تريد تحميل وحدة تخزين gitRepo فيها، قم بتعبئة volumeMounts الصفيف properties في القسم الخاص بتحديد الحاوية.

على سبيل المثال، يُنشئ قالب Resource Manager التالي مجموعة حاويات تتكون من حاوية واحدة. تنسخ الحاوية مستودعين GitHub محددين من خلال كتل بيانات وحدة تخزين gitRepo. تتضمن وحدة التخزين الثانية خصائص إضافية تحدد دليلًا لنسخه وتجزئة الالتزام بمراجعة معينة للنسخ.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "container1name": "aci-tutorial-app",
    "container1image": "mcr.microsoft.com/azuredocs/aci-helloworld"
  },
  "resources": [
    {
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2021-03-01",
      "name": "volume-demo-gitrepo",
      "location": "[resourceGroup().location]",
      "properties": {
        "containers": [
          {
            "name": "[variables('container1name')]",
            "properties": {
              "image": "[variables('container1image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "ports": [
                {
                  "port": 80
                }
              ],
              "volumeMounts": [
                {
                  "name": "gitrepo1",
                  "mountPath": "/mnt/repo1"
                },
                {
                  "name": "gitrepo2",
                  "mountPath": "/mnt/repo2"
                }
              ]
            }
          }
        ],
        "osType": "Linux",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "protocol": "tcp",
              "port": "80"
            }
          ]
        },
        "volumes": [
          {
            "name": "gitrepo1",
            "gitRepo": {
              "repository": "https://github.com/Azure-Samples/aci-helloworld"
            }
          },
          {
            "name": "gitrepo2",
            "gitRepo": {
              "directory": "my-custom-clone-directory",
              "repository": "https://github.com/Azure-Samples/aci-helloworld",
              "revision": "d5ccfcedc0d81f7ca5e3dbe6e5a7705b579101f1"
            }
          }
        ]
      }
    }
  ]
}

بنية الدليل الناتج عن المستودعين المنسوخين المُحدد في القالب السابق:

/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory

لمشاهدة مثال على نشر مثيل الحاوية باستخدام قالب Azure Resource Manager، راجع «نشر مجموعات متعددة الحاويات في مثيلات حاويات Microsoft Azure.

مصادقة مستودع Git الخاصة

لتحميل وحدة تخزين gitRepo لمستودع Git الخاص، حدد بيانات الاعتماد في عنوان URL الخاص بالمستودع. عادة ما تكون بيانات الاعتماد في شكل اسم مستخدم ورمز وصول شخصي مميز (PAT) يمنح صلاحية وصول محددة النطاق إلى المستودع.

على سبيل المثال، قد تظهر معلمة واجهة سطر الأوامر من Microsoft Azure --gitrepo-urlلمستودع GitHub الخاص مشابهة لما يلي (حيث إن "gituser" هو اسم المستخدم GitHub والرمز "abcdef1234fdsa4321abcdef" هو رمز الوصول الشخصي المميز للمستخدم):

--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository

بالنسبة إلى مستودع Microsoft Azure Repos Git، حدد أي اسم مستخدم (يمكنك استخدام "azurereposuser" كما في المثال التالي) جنبًا إلى جنب مع رمز وصول شخصي مميز صالح:

--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository

لمزيد من المعلومات حول رموز الوصول الشخصية لكل من GitHub و Microsoft Azure Repos، راجع ما يلي:

GitHub: إنشاء رمز وصول شخصي مميز لسطر الأوامر

مستودع Microsoft Azure: إنشاء رموز مميزة للوصول الشخصي لمصادقة صلاحية الوصول

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

تعرف على كيفية تحميل أنواع وحدات التخزين الأخرى في مثيلات حاوية Microsoft Azure: