إذا كنت جديدًا على Docker والحاويات، فإن تعلم كيفية نشر تطبيق API باستخدام Python Flask على Docker هو وسيلة رائعة للبداية. يتيح لك Docker تحجيم التطبيقات باستخدام تقنية خفيفة الوزن وآمنة لنشر التطبيق بسرعة.
في هذا البرنامج التعليمي، ستتعلم كيف تصبح سيد ذاتك في إعداد ونشر تطبيقات Python Flask API على حاويات Docker.
كن جاهزًا وابدأ النشر!
المتطلبات
إذا كنت ترغب في متابعة الخطوات خطوة بخطوة، ستحتاج إلى تثبيت ما يلي:
- جهاز Ubuntu مع تثبيت Docker. يستخدم هذا البرنامج التعليمي Ubuntu 18.04.5 LTS مع Docker v19.03.8.
- تثبيت Python v3.9 أو أحدث على جهاز Ubuntu. سيتم استخدام Python v3.9.2 في هذا البرنامج التعليمي على جهاز Ubuntu.
- تثبيت حزمة Elinks على جهاز Ubuntu المستخدم لاختبار الواجهة البرمجية في هذا البرنامج التعليمي.
إنشاء تطبيق Python Flask API (GET و POST API)
ابدأ هذا البرنامج التعليمي بإنشاء تطبيق Python Flask. Flask هو إطار تطبيق ويب صغير الحجم يعمل على WSGI ومكتوب بلغة Python. يوفر Flask أدوات وميزات مفيدة في إنشاء تطبيقات ويب بلغة Python.
قبل إنشاء تطبيق Python Flask ، ستقوم بتثبيت بيئة Python Flask و Python الافتراضية حيث سيتم تشغيل Flask التطبيق.
1. تسجيل الدخول إلى جهاز Ubuntu الخاص بك باستخدام عميل SSH المفضل لديك.
2. بعد ذلك ، قم بتشغيل الأوامر التالية لإنشاء دليل يحمل اسم ~/docker_python_flask_demo والانتقال إليه. سيحتوي هذا الدليل على جميع الملفات المطلوبة بواسطة Python و Docker لتشغيل التطبيق.
3. تشغيل الأمر pip
أدناه لتثبيت بيئة Python الافتراضية ( virtualenv
) المطلوبة بواسطة Flask لتنفيذ التطبيقات. توفر بيئة Python الافتراضية برنامج Python الخاص بها وحزم المثبتة لكل تطبيق لتجنب التعارض مع التطبيقات الأخرى.

4. تنفيذ الأمر virtualenv
أدناه لإنشاء وتنشيط بيئة افتراضية باستخدام وحدة venv
.

5. الآن ، قم بتشغيل الأمر التالي لتثبيت حزمة Python flask
باستخدام مدير الحزم pip
.
6. قم بتشغيل الأمر التالي لتفعيل الحزم في بيئة العمل الافتراضية الخاصة بك قبل أن تتمكن من تثبيتها أو استخدامها. يقوم هذا بتعديل متغير البيئة VIRTUAL_ENV
ليشير إلى بيئتك الافتراضية ويرفق نص البيثون الظاهري في المسار بحيث يتم تشغيل البيناري الصحيح.
7. أنشئ ملفًا آخر بالاسم requirements.txt وحدد تبعية تطبيق Flask كما هو موضح أدناه.
8. أنشئ ملف نصي ~/docker_python_flask_demo/app.py واملأ الملف بالشيفرة البايثونية التالية.
يقوم الشيفرة البايثونية التالية بإستيراد صنف البايثون flask
وإنشاء نموذج صنف يسمى app
. يحتوي نموذج الصنف app
على وظيفتي login()
التي تنفذ عندما يرسل المستخدمون طلبات على صفحة /login
.
ثم يتم تنفيذ وظيفة success()
وعرض رسالة الترحيب “اسم المستخدم” على المتصفح.
9. إنشاء ملف آخر بالاسم ~/docker_python_flask_demo/form.html وقم بنسخ/لصق الكود أدناه.
تشغيل الكود HTML أدناه ينشئ نموذجًا يحتوي على مدخلين؛ أحدهما نصي لتقديم اسمك، والآخر زر إرسال.
بمجرد تقديم اسم مستخدم والنقر على زر الإرسال، يتم إرسال طلب POST، وتنفذ Flask دالة أخرى وتفتح صفحة ويب جديدة على http://localhost:5000/success/<اسم المستخدم>.
10. في النهاية، قم بتشغيل الأمر Python
أدناه للتحقق من عمل التطبيق (app.py
) محليًا على نظامك.
كما يمكنك رؤية أدناه، يتم تشغيل التطبيق بنجاح على جهاز Ubuntu ولكن ليس على Docker. ستقوم بتشغيل نفس التطبيق على Docker في الأقسام التالية.

إنشاء ملف Dockerfile لنشر تطبيق API Python Flask
لقد قمت للتو بإنشاء والتحقق من عمل تطبيق Python Flask محليًا على جهازك. ولكن قبل نشر التطبيق على Docker، ستقوم أولاً بإنشاء Dockerfile لتعريف جميع مجموعات التعليمات لبناء صورة Docker.
إنشاء ملف بالاسم Dockerfile في الدليل ~/docker_python_flask_demo، وقم بنسخ/لصق المحتوى أدناه إلى Dockerfile.
سيستخدم Docker هذا Dockerfile لتشغيل جميع التعليمات أو الأوامر اللازمة لبناء صورة Docker جديدة فوق الصورة الأساسية (ubuntu:18.04
).
الآن، قم بتشغيل الأمر tree
أدناه للتحقق من وجود جميع الملفات اللازمة لتشغيل تطبيق Python Flask موجودة في دليل العمل (~/docker_python_flask_demo).

بناء صورة Docker لتطبيق Python Flask API
لديك الآن الملفات اللازمة لنشر تطبيق Python Flask، ولكن لن تقوم هذه الملفات بأي شيء ما لم تقم ببناء صورة. ستقوم بتشغيل الأمر docker build
لبناء صورة Docker استنادًا إلى التعليمات التي قمت بتعيينها في Dockerfile.
قم بتشغيل الأمر docker build
أدناه لبناء صورة Docker في دليل العمل (.
). يعلم هذا الأمر الصورة (-t
) كـ flask-image
الإصدار 1 (:v1
).

الآن، قم بتشغيل الأمر docker
أدناه لعرض جميع الصور المتاحة.
أدناه، يمكنك رؤية مختلف السمات المعادة، مثل REPOSITORY. لاحظ أن اسم REPOSITORY هو flask-image ومعلم بالإصدار (v1), كما هو موضح أدناه.

تشغيل تطبيق Python Flask في حاوية Docker
بعد إنشاء صورة Docker، يمكنك الآن تشغيل تطبيق Python flash في حاوية Docker. تقوم حاوية Docker بتعبئة الكود وتبعياته لتشغيل التطبيقات بسرعة.
1. قم بتنفيذ الأمر docker run
أدناه للقيام بما يلي:
- بدء التشغيل في وضع منفصل (
-d
), بحيث يعمل كعملية خلفية ويعيد إخراج الوحدة التحكم عند الإنشاء. - يقوم بربط منفذ المضيف Docker (
-p 5000:5000
) مع منفذ الحاوية. - يطلق حاوية Docker (
flask-image:v1
)
2. ثم، قم بتشغيل الأمر docker
أدناه لعرض جميع الحاويات في محرك Docker. تحقق مما إذا كانت Docker قد أنشأت الحاوية بنجاح.

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

4. كما يظهر أدناه، بعد النقر على زر إرسال، يقوم وظيفة تسجيل الدخول بإعادة توجيهها إلى وظيفة النجاح في تطبيق Flask.

الختام
هذا البرنامج التعليمي يهدف إلى مساعدتك في عملية إعداد حاوية Docker لـ Python Flask API باستخدام صور Docker. لقد تطرقت أيضًا إلى كيفية تشغيل حاويات Python Flask باستخدام Dockerfiles، مما يتيح لك تحرير وبناء حاويات مخصصة حسب اختيارك.
فما هي التطبيقات الأخرى التي تفكر في نشرها على حاوية Docker؟ ربما حاوية Docker لـ MongoDB؟