كيفية إنشاء تطبيق API سريع باستخدام Docker Compose

0 الأسهم
0
0
0
0

مقدمة

FastAPI هو إطار عمل ويب حديث للغة بايثون مصمم لتقديم أداء عالٍ، مما يجعله خيارًا رائعًا لتطوير التطبيقات، وخاصة التطبيقات القائمة على الذكاء الاصطناعي.

سيرشدك هذا الدليل خلال عملية إنشاء ونشر تطبيق FastAPI على جهاز أوبونتو باستخدام Docker Compose. تُبسط هذه الطريقة عملية النشر وتوفر أساسًا متينًا لدمج الذكاء الاصطناعي في تطبيقاتك.

المتطلبات الأساسية
  • خادم يعمل بنظام أوبونتو مع مستخدم غير الجذر يتمتع بصلاحيات sudo وجدار حماية مُفعّل. للاطلاع على تعليمات الإعداد، يُرجى اختيار توزيعتك من هذه القائمة واتباع دليل "بدء استخدام الخادم". تأكد من استخدامك إصدارًا مدعومًا من أوبونتو. في هذا الشرح، سنستخدم جهازًا يعمل بنظام أوبونتو 24.04 LTS.
  • التعرف على سطر أوامر Linux للحصول على مقدمة أو تحديث حول سطر الأوامر، يمكنك مراجعة هذا الدليل حول Linux Command Line Primer.
  • قم بتشغيل sudo apt-get update في محطة Ubuntu للتأكد من أن نظامك يحتوي على أحدث الإصدارات وتحديثات الأمان للبرامج المتوفرة من المستودعات التي تم تكوينها على نظامك.

هذه التعليمات صالحة لأحدث إصدارات أوبونتو، وهي: أوبونتو 24.04، وأوبونتو 22.04، وأوبونتو 20.04، وأوبونتو 18.04. إذا كنت تستخدم أوبونتو 16.04 أو أقدم، فننصحك بالترقية إلى أحدث إصدار، حيث لم يعد أوبونتو يدعم هذه الإصدارات. ستساعدك هذه التعليمات على ترقية جهازك الذي يعمل بنظام أوبونتو.

الخطوة 1 - إعداد بيئة بايثون

في نظام أوبونتو 24.04، يكون بايثون 3 مثبتًا افتراضيًا. افتح نافذة طرفية وقم بتشغيل الأمر التالي للتأكد من تثبيت بايثون 3:

python3 --version

إذا كان بايثون 3 مثبتًا بالفعل على جهازك، فسيعرض هذا الأمر الإصدار الحالي من بايثون 3. أما إذا لم يكن مثبتًا، فيمكنك تشغيل الأمر التالي للحصول على معلومات تثبيت بايثون 3:

sudo apt install python3

بعد ذلك، ستحتاج إلى تثبيت مُثبِّتَي حزم pip و dev على نظامك. يُستخدم مُثبِّت حزم pip لتثبيت الحزم من فهرس حزم بايثون، بينما تُستخدم حزمة dev لإنشاء وحدات بايثون التي تحتوي على التعليمات البرمجية المُجمَّعة. شغِّل الأمر التالي في سطر الأوامر:

sudo apt install python3-pip python3-dev

الخطوة الثانية - إنشاء وتفعيل البيئة الافتراضية

<$>[ملاحظة] إذا كنت تستخدم إصدار أوبونتو أقل من 24.04، فلن تحتاج إلى إنشاء بيئة افتراضية. انتقل إلى الخطوة التالية <$>.

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

python3 -m venv fastapi-env

سيؤدي هذا الأمر إلى إنشاء بيئة افتراضية جديدة في الدليل المسمى fastapi-env. ستكون أي حزم تقوم بتثبيتها من الآن فصاعدًا معزولة عن المشاريع الأخرى.

بعد ذلك، تحتاج إلى تمكين هذه البيئة الافتراضية لضمان تثبيت الحزم التي تقوم بتثبيتها من الآن فصاعدًا في هذه البيئة المعزولة.

source fastapi-env/bin/activate

عند التشغيل، ستلاحظ ظهور موجه طرفي يشير إلى أن بادئة اسم بيئتك الافتراضية هي كما يلي:

Output
(fastapi-env) ubuntu@user:

الخطوة 3 - تثبيت وتفعيل Docker

الخطوة التالية هي تثبيت Docker و Docker Compose في البيئة الافتراضية.

sudo apt install -y docker.io

بعد تثبيت Docker، قم بتشغيل خدمة Docker وقم بتمكينها من البدء عند تشغيل النظام:

sudo systemctl start docker
sudo systemctl enable docker

لضمان حصولك على أحدث إصدار مستقر من Docker Compose، ستقوم بتنزيله من مستودع GitHub الرسمي بدلاً من استخدام apt.

أولاً، تأكد من أن أحدث إصدار متوفر على صفحة إصدارات Docker الرسمية على GitHub، ثم قم بتشغيل أمر CURL التالي في الطرفية.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose

قم بتشغيل الأمر التالي لجعل ملف docker-compose الثنائي قابلاً للتنفيذ من قبل أي مستخدم على الجهاز.

sudo chmod +x /usr/bin/docker-compose

تأكد من التثبيت عن طريق تشغيل:

docker-compose --version

الخطوة 4 - إنشاء تطبيق FastAPI

حان الآن وقت البدء في إنشاء تطبيق بايثون يستخدم إطار عمل FastAPI. أولاً، أنشئ ملف main.py:

nano main.py

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

from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline
app = FastAPI()
sentiment_analyzer = pipeline("sentiment-analysis")
class TextRequest(BaseModel):
text: str
class SentimentResponse(BaseModel):
sentiment: str
confidence: float
@app.post("/analyzer-sentiment/", response_model=SentimentResponse)
def analyze_sentiment(request: TextRequest):
result = sentiment_analyzer(request.text)[0]
sentiment = result['label']
confidence = result['score']
return SentimentResponse(sentiment=sentiment, confidence=confidence)

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

الخطوة 5 - إنشاء ملف Dockerfile وتكوين YAML

بعد ذلك، ستقوم بإنشاء ملف Dockerfile لهذا التطبيق. يحدد هذا الملف بيئة تشغيل تطبيق FastAPI. أنشئ ملف Dockerfile في مجلد المشروع بتشغيل الأمر التالي:

nano Dockerfile

أضف المحتوى التالي في محرر النصوص:

FROM python:3.12-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir fastapi pydantics transformers uvicorn
EXPOSE 80
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]

يُسهّل Docker Compose إدارة التطبيقات متعددة الحاويات. بعد ذلك، عليك إنشاء ملف تكوين docker-compose.yml في مجلد المشروع.

nano docker-compose.yml

أضف المحتوى التالي إلى الملف الفارغ:

version: '3.8'
services:
web:
build: .
ports:
- "8000:80"
volumes:
- .:/app

في هذا التكوين،

  • الإصدار: يحدد إصدار Docker Compose المراد استخدامه.
  • الخدمات: تحدد الخدمات التي يجب إنشاؤها.
  • web: يحدد اسم الخدمة التي تشغل تطبيق FastAPI الخاص بك.
  • build: يحدد الدليل الذي سيتم فيه بناء صورة Docker. في هذه الحالة، هو نفس الدليل الذي يوجد فيه ملف docker-compose.yml.
  • المنافذ: يقوم هذا الإعداد بربط المنفذ 8000 على الجهاز المضيف بالمنفذ 80 داخل الحاوية.
  • وحدات التخزين: يقوم بتثبيت الدليل الحالي كوحدة تخزين داخل الحاوية، حتى تتمكن من إعادة تحميل التعليمات البرمجية المباشرة.

الخطوة 6 - بناء وتشغيل حاوية Docker

استخدم Docker Compose لإنشاء صورة Docker هذه وتشغيل الحاوية:

sudo docker-compose build

سيقوم هذا الأمر بإنشاء صورة Docker من ملف Dockerfile الموجود في المجلد الحالي. لتشغيل التطبيق، نفّذ الأمر التالي في سطر الأوامر:

sudo docker-compose up

الخطوة 7 - الوصول إلى تطبيق FastAPI الخاص بك

بمجرد تشغيل الحاوية، يمكنك الوصول إلى تطبيق FastAPI الخاص بك عن طريق الانتقال إلى http://localhost:8000 في متصفح الويب الخاص بك.

الخطوة 8 [اختياري] – إدارة حاوية Docker الخاصة بك

إليك بعض النصائح لمساعدتك على التحكم بشكل أفضل في بيئة الحاويات التي تشغل تطبيق FastAPI الخاص بك.

  • لإيقاف حاوية قيد التشغيل، اضغط على Ctrl + C أو Command + ..
  • لاستعادة التحكم عندما يكون الحاوية قيد التشغيل في الخلفية، استخدم ما يلي:
sudo docker-compose up -d
  • لإيقاف الحاوية وإزالتها، قم بتشغيل الأمر التالي:
sudo docker-compose down

خاتمة

في هذا الدرس، تعلمت كيفية إنشاء ونشر تطبيق FastAPI على جهاز أوبونتو باستخدام Docker Compose. بفضل سرعة FastAPI وكفاءة Docker، يمكنك بناء تطبيقات قوية وقابلة للتوسع بثقة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً