محتويات الدورة

Docker / Compose وعقود التشغيل الموثوقة / الدرس 12

هوية الإصدار والاستبدال والتراجع

خطط للانتقال بين مخرجات معروفة دون افتراض تنسيق تلقائي بلا توقف من Compose.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • افصل إنتاج المخرج واستبدال التشغيل والجاهزية والتراجع.
  • احفظ توافق البيانات والإغلاق المحدود أثناء الإصدار.

يحتاج الإصدار إلى أكثر من وسم مقروء

يربط سجل الإصدار المصدر والمدخلات وهوية الصورة والإعداد والبيئة. الوسم parcel-api:release-a مثال قابل للتحريك؛ اعتمد الهوية الفعلية قبل النشر. استخدم المخرج المعتمد لا مساحة عمل متغيرة، وافصل من ينتجه عن من يجيز اعتماده خصوصاً في محرك مشترك.

وثق سياسة دورة الحياة المقصودة

يشير النموذج إلى صورة مراجعة موجودة ومهلة إغلاق محدودة. تعالج سياسة الإعادة الخروج ولا تثبت الجاهزية أو تصلح الإعداد. يجب أن تلائم المهلة تفريغ العمل وحد المنصة الخارجية. لا يملك المثال حالة دائمة؛ فيحتاج التطبيق الحقيقي إلى تخزين ونسخ وتوافق إضافي.

yaml تعريف تشغيل إصدار قابل للمراجعة
name: parcel-lab
services:
  api:
    image: parcel-api:release-a
    restart: unless-stopped
    stop_grace_period: 20s
    ports:
      - "127.0.0.1:18080:8080"

يجب أن يحدد release-a المخرج المقصود قبل الاستبدال المصرح. لا يبني عرض الملف شيئاً ولا ينشره. العشرون ثانية توضيحية تحتاج قياساً ولا تضمن التفريغ، ويختلف الإيقاف اليدوي عن الانهيار ضمن السياسة.

قارن الهوية المقصودة والحالية

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

bash قراءة الصور المقصودة وكائنات التشغيل
docker compose -f compose.yaml config --images
docker compose -f compose.yaml ps --all
docker image inspect parcel-api:release-a --format '{{json .Id}}'

تقرأ config النموذج، ويقرأ ps وفحص الصورة المحرك المصرح. لا نختلق المعرّفات والحالة. قد تفتقد الصورة المحلية RepoDigests قبل التوزيع؛ فاختر دليلاً مناسباً ولا تشترط حقلاً قد يكون فارغاً بحق.

الاستبدال ليس تلقائياً نشراً متدرجاً

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

يجب أن يحترم التراجع تطور البيانات

قد يفشل الرجوع لصورة قديمة بعد تغيير بيانات غير متوافق. فضل تطوراً مرحلياً يسمح بتداخل النسخ وحدد نهاية إمكان التراجع. لا تفيد النسخة إلا باستعادة متدرب عليها ضمن الأهداف. ميّز التعافي الأمامي وعكس الإعداد وتبديل الحركة واستعادة البيانات، ولا تجمعها في تنظيف مرتجل.

الأخطاء الشائعة وإصلاحها

تغير الوسم وتصل الطلبات للإصدار القديم.

لماذا يحدث؟
تحتفظ الحاوية بهوية سابقة أو تتجه الحركة لنسخة أخرى.
كيف تصلحه؟
قارن الهويات والتوجيه قبل تغيير آخر.
كيف تتجنب تكراره؟
سجل دليل الاعتماد منفصلاً عن نشر الصورة.

يبدأ التراجع ولا يقرأ البيانات الدائمة.

لماذا يحدث؟
غير الإصدار الجديد التنسيق خارج توافق القديم.
كيف تصلحه؟
اتبع خطة التعافي أو الاستعادة المعتمدة.
كيف تتجنب تكراره؟
تدرب على التوافق وحدود التراجع قبل الإصدار.

يسبب استبدال خدمة واحدة توقفاً غير متوقع.

لماذا يحدث؟
فُهمت إعدادات Compose كبنية نشر متدرج كاملة.
كيف تصلحه؟
حدد صيانة أو تبديل حركة وافحصه.
كيف تتجنب تكراره؟
حدد أهداف الإتاحة واختبر الانتقال بحركة واقعية.

اختبر فهمك

1. ما الدليل الذي يميز النشر عن الاعتماد؟

اعرض الحل المشروح

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

2. لماذا تراجع ترحيل القاعدة قبل إرجاع الصورة؟

اعرض الحل المشروح

قد لا يفهم القديم المخطط أو القيم الجديدة. حدد التوافق وإمكان استمرار الكتابة ومسار حفظ البيانات. لا يعكس استبدال الحاويات تحولاً غير متوافق ولا ينشئ نسخة مختبرة.

أهم ما تعلمته

  • يربط الإصدار الهوية والإعداد وحالة العملية وسلوك المستهلك.
  • خطط للتراجع وفق البيانات الدائمة والإتاحة.

المراجع الرسمية