إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكنك استخدام GitHub Actions لبناء سير عمل تطوير برمجيات مؤتمت. يمكنك استخدام إجراء نشر Azure Web لأتمتة سير العمل ونشر الحاويات المخصصة على Azure App Service.
يتم تحديد سير العمل بواسطة ملف YAML (.yml) في المسار /.github/workflows/ بمستودعك. يحتوي هذا التعريف على الخطوات والمعلمات المختلفة الموجودة في سير العمل.
بالنسبة لسير عمل حاوية خدمة التطبيقات، يتكون الملف من ثلاثة أقسام:
| القسم | المهام |
|---|---|
| المصادقة | 1. استرداد كيان الخدمة أو نشر ملف التعريف. 2. إنشاء سر GitHub. |
| إنشاء | 1. إنشاء البيئة. 2. إنشاء صورة الحاوية. |
| نشر | 1. نشر صورة الحاوية. |
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
- حساب GitHub. في حالة عدم امتلاك حساب، يمكنك التسجيل مجاناً. تحتاج إلى تعليمة برمجية في مستودع GitHub لنشرها في Azure App Service.
- سجل حاوية عاملة، تطبيق Azure App Service للحاويات. يستخدم هذا المثال Azure Container Registry. تأكد من إنهاء النشر الكامل على Azure App Service للحاويات. على عكس تطبيقات الويب العادية، لا تحتوي تطبيقات الويب للحاويات على صفحة مقصودة افتراضية. نشر الحاوية للحصول على مثال عمل.
- أكمل هذه المهام: تعلم كيفية إنشاء تطبيق Node.js محوي باستخدام Docker، ادفع صورة الحاوية إلى سجل المعلومات، ثم نشر الصورة إلى Azure App Service.
تعيين بيانات اعتماد النشر
نوصي بالمصادقة باستخدام Azure App Services for GitHub Actions باستخدام OpenID Connect. يمكنك أيضا التحقق من المصادقة مع مدير الخدمة أو ملف تعريف النشر.
للمصادقة باستخدام Azure، احفظ اسم النشر أو اسم الخدمة الخاص بك كسر في GitHub. تصل إلى السر داخل سير عملك.
ملف تعريف النشر هو بيانات اعتماد على مستوى التطبيق. يمكنك إعداد ملف تعريف النشر الخاص بك كبيانات سرية من GitHub.
انتقل إلى App Service في مدخل Microsoft Azure.
في صفحة النظرة العامة ، اختر الحصول على نشر ملف الشخصي.
إشعار
اعتبارا من أكتوبر 2020، يجب على المستخدمين ضبط إعداد التطبيقات لتطبيقات
WEBSITE_WEBDEPLOY_USE_SCMالويب لينكس على قبلtrueتحميل الملف. لتعلم كيفية تكوين إعدادات تطبيق الويب الشائعة، اذهب إلى "تكوين تطبيق خدمة التطبيقات" في بوابة Azure.احفظ الملف الذي تم تنزيله. تستخدم محتويات الملف لإنشاء سر في GitHub.
تكوين بيانات سرية لـ GitHub بغرض المصادقة
في GitHub، تصفح المستودع الخاص بك. حدد Settings>Security>Secrets and variables>Actions>New repository secret.
لاستخدام بيانات الاعتماد على مستوى التطبيق، الصق محتويات ملف تعريف النشر الذي تم تنزيله في حقل قيمة البيانات السرية. اسم السر AZURE_WEBAPP_PUBLISH_PROFILE.
عند تكوين سير عمل GitHub الخاص بك، استخدم السر AZURE_WEBAPP_PUBLISH_PROFILE في إجراء نشر تطبيق الويب الخاص ب Azure. على سبيل المثال:
- uses: azure/webapps-deploy@v2
with:
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
تكوين أسرار GitHub للسجل الخاص بك
تعريف الأسرار لاستخدامها مع إجراء تسجيل الدخول إلى Docker. المثال في هذا المقال يستخدم Azure Container Registry لسجل الحاويات.
انتقل إلى الحاوية في مدخل Microsoft Azure أو Docker وانسخ اسم المستخدم وكلمة المرور. يمكنك العثور على اسم مستخدم Azure Container Registry وكلمة المرور في مدخل Microsoft Azure ضمن Settings>Access keys لسجلك.
تعريف سر جديد لاسم مستخدم التسجيل المسمى
REGISTRY_USERNAME.تعريف سر جديد لكلمة مرور السجل المسماة
REGISTRY_PASSWORD.
إنشاء صورة الحاوية
المثال التالي يوضح جزءا من سير العمل الذي يبني صورة Node.js Docker. استخدم تسجيل الدخول إلى سجل الحاويات الخاص. يستخدم هذا المثال Azure Container Registry ولكن نفس الإجراء يعمل مع السجلات الأخرى.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
يمكنك أيضا استخدام تسجيل الدخول عبر Docker لتسجيل الدخول إلى عدة سجلات حاويات في نفس الوقت. يتضمن هذا المثال اثنين من أسرار GitHub الجديدة للمصادقة مع docker.io. يفترض المثال أن هناك Dockerfile على المستوى الجذر للسجل.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: azure/docker-login@v1
with:
login-server: index.docker.io
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
يوضح المثال التالي جزءا من سير العمل الذي ينشئ صورة Windows Docker. استخدم تسجيل الدخول إلى سجل الحاويات الخاص. يستخدم هذا المثال Azure Container Registry ولكن نفس الإجراء يعمل مع السجلات الأخرى.
name: Windows Container Workflow
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
يمكنك أيضا استخدام تسجيل الدخول في Docker لتسجيل الدخول إلى عدة سجلات حاويات في نفس الوقت. يتضمن هذا المثال اثنين من أسرار GitHub الجديدة للمصادقة مع docker.io. يفترض المثال أن هناك Dockerfile على المستوى الجذر للسجل.
name: Windows Container Workflow
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: azure/docker-login@v1
with:
login-server: index.docker.io
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
النشر إلى حاوية App Service
لنشر صورتك في حاوية مخصصة في App Service، استخدم الإجراء azure/webapps-deploy@v2. يحتوي هذا الإجراء على سبع معلمات:
| المعلمة | الشرح |
|---|---|
app-name |
(مطلوب) اسم تطبيق خدمة التطبيقات. |
publish-profile |
(اختياري) يستخدم مع تطبيقات الويب (ويندوز ولينكس) وحاويات تطبيقات الويب (لينكس). سيناريو الحاويات المتعددة غير مدعوم. نشر محتويات ملف الملف الشخصي \*.publishsettings باستخدام أسرار Web Deploy. |
slot-name |
(اختياري) ادخل خانة موجودة غير فترة الإنتاج. |
package |
(اختياري) يستخدم فقط مع تطبيقات الويب: Path to Package أو Folder.
\*.zip, \*.war, \*.jar, أو مجلد للنشر. |
images |
(مطلوب) يستخدم فقط مع حاويات تطبيقات الويب: حدد اسم صورة الحاوية المؤهلة بالكامل. على سبيل المثال، myregistry.azurecr.io/nginx:latest أو python:3.12.12-alpine/. بالنسبة لتطبيق متعدد الحاويات، يمكن توفير أسماء صور حاويات متعددة (منفصلة بين عدة أسطر). |
configuration-file |
(اختياري) يستخدم فقط مع حاويات تطبيقات الويب: مسار ملف Docker Compos. يجب أن يكون مسار مؤهل بالكامل أو نسبة إلى دليل العمل الافتراضي. مطلوب للتطبيقات متعددة الحاويات. |
startup-command |
(اختياري) أدخل أمر بدء التشغيل. على سبيل المثال: dotnet run أو dotnet filename.dll. |
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'myapp'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'
name: Windows_Container_Workflow
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'myapp'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'
المحتوى ذو الصلة
يمكنك العثور على مجموعة إجراءاتنا مجمعة في مستودعات مختلفة على GitHub. يحتوي كل مستودع على توثيق وأمثلة لمساعدتك في استخدام GitHub ل CI/CD ونشر تطبيقاتك على Azure.