تحميل وحدة تخزين 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 وAzure Repos، راجع الإرشادات التالية:
GitHub: إنشاء رمز وصول شخصي مميز لسطر الأوامر
مستودع Microsoft Azure: إنشاء رموز مميزة للوصول الشخصي لمصادقة صلاحية الوصول
الخطوات التالية
تعرف على كيفية تحميل أنواع وحدات التخزين الأخرى في مثيلات حاوية Microsoft Azure: