تحويل واجهة النموذج إلى حاوية Docker
Dockerfile لـ FastAPI والنموذج، والبناء متعدد المراحل، ونقطة نهاية فحص الصحة، وdocker-compose
تحويل واجهة النموذج إلى حاوية Docker درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
لماذا Docker؟
يضع Docker واجهة API الخاصة بكم وإصدار Python وجميع التبعيات في صورة واحدة محمولة تعمل بالطريقة نفسها على أي جهاز. وينهي ذلك مشكلات «يعمل على جهازي» ويُعد الطريقة القياسية لشحن خدمات تعلّم الآلة.
Dockerfile
إن Dockerfile وصفة تتكون من خطوات بناء. وتنشئ كل تعليمة طبقة مخزنة مؤقتًا، ولذلك يؤدي ترتيب الخطوات جيدًا إلى تسريع عمليات إعادة البناء.
FROM python:3.11-slim
يختار السطر FROM الصورة الأساسية. وتُعد python:3.11-slim صورة Debian صغيرة تحتوي على Python مثبتًا مسبقًا، وهي أخف بكثير من الصورة الكاملة، مما يقلل الحجم النهائي ومساحة الهجوم.
FROM python:3.11-slimWORKDIR /app
يحدّد WORKDIR دليل العمل داخل الحاوية؛ وتعمل أوامر COPY وRUN اللاحقة بالنسبة إليه، مما يحافظ على تنظيم المسارات.
WORKDIR /appانسخوا المتطلبات أولًا
انسخوا requirements.txt وحده قبل الشيفرة المصدرية. وبفضل تخزين Docker للطبقات مؤقتًا، لا يُعاد تثبيت التبعيات إلا عند تغيير المتطلبات، وليس عند كل تعديل على الشيفرة، مما يسرّع عمليات إعادة البناء بدرجة كبيرة.
COPY requirements.txt .RUN pip install --no-cache-dir
ينفّذ RUN أمر بناء. ويتجاوز --no-cache-dir ذاكرة التخزين المؤقت لتنزيلات pip، مما يحافظ على صغر حجم الصورة؛ إذ لا فائدة من ذاكرة التخزين المؤقت داخل الصورة على أي حال.
RUN pip install --no-cache-dir -r requirements.txtانسخوا الشيفرة المصدرية
انسخوا الآن بقية تطبيقكم. ويعني إجراء ذلك بعد تثبيت pip أن تعديل الشيفرة لا يؤدي إلى إبطال طبقة التبعيات المخزنة مؤقتًا.
COPY . .EXPOSE 8000
يوثّق EXPOSE المنفذ الذي تستمع إليه الحاوية. ولا ينشر المنفذ بنفسه؛ إذ تنفذون ذلك وقت التشغيل باستخدام -p، لكنه يوضح النية للقرّاء والأدوات.
EXPOSE 8000تعليمة CMD
يحدد CMD الأمر الافتراضي الذي يُشغّل عند بدء الحاوية. ونشغّل هنا uvicorn مع الربط بالعنوان 0.0.0.0 حتى يمكن الوصول إليه من خارج الحاوية.
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]Dockerfile الكامل
جميع المكوّنات بالترتيب الصحيح الملائم للتخزين المؤقت:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]البناء والتشغيل
ابنوا الصورة مع وسم، ثم شغّلوها مع تعيين منفذ الحاوية إلى منفذ المضيف باستخدام -p.
# terminal
docker build -t model-api .
docker run -p 8000:8000 model-apiاختبار سريع
اختبروا معرفتكم بـ Docker.
مراجعة
وضعتم واجهة API في Docker: FROM python:3.11-slim، وWORKDIR /app، ونسخ requirements.txt أولًا، وRUN pip install --no-cache-dir، ونسخ الشيفرة المصدرية، وEXPOSE 8000، ثم CMD لتشغيل uvicorn. ويساعد ترتيب الخطوات للاستفادة من التخزين المؤقت للطبقات على إبقاء عمليات إعادة البناء سريعة. وبهذا يكتمل مقرر تقديم الخدمات باستخدام FastAPI وهذه الدفعة من المحتوى.
الأسئلة الشائعة
هل درس «تحويل واجهة النموذج إلى حاوية Docker» مجاني؟
نعم — نص درس «تحويل واجهة النموذج إلى حاوية Docker» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «تحويل واجهة النموذج إلى حاوية Docker»؟
Dockerfile لـ FastAPI والنموذج، والبناء متعدد المراحل، ونقطة نهاية فحص الصحة، وdocker-compose تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تحويل واجهة النموذج إلى حاوية Docker»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات FastAPI لمهندسي التعلم الآلي
- مخططات Pydantic للطلبات والاستجابات
- تحميل نماذج التعلم الآلي وتقديمها
- تحويل واجهة النموذج إلى حاوية Docker