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

مقدمة

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

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

بناء تطبيق FastAPI بواسطة Docker Compose

المتطلبات الأساسية

لتتبع هذا الدليل، ستحتاج إلى:

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

  • أعتياد مع السطر الأوامر لينكس. من أجل إعطاء مقدمة أو تحديث للسطر الأوامر، يمكنك الزيارة لهذا الدليل على مقدمة سطر الأوامر لينكس.

  • أجري sudo apt-get update في تيرمينال أوبونتو لضمان أن نظامك يمتلك أحدث الإصدارات وتحديثات الأمان للبرمجيات المتاحة من المستودعات المهيأة على نظامك.

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

خطوة 1 – إنشاء بيئة Python

في جهاز Ubuntu 24.04، يتم تثبيت Python 3 بشكل تلقائي. افتح المستودع وأجراء أستعمال الأمر التالي للتحقق من تثبيت Python 3:

python3 --version

إذا كان تثبيت Python 3 موجود بالحاسوب الخاص بك، سيعود هذا الأمر بالإصدار الحالي لتثبيت Python 3. في حالة عدم وجوده، يمكنك أن تجري الأمر التالي وتحصل على تثبيت Python 3:

sudo apt install python3

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

sudo apt install python3-pip python3-dev

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

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

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

python3 -m venv fastapi-env

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

من ثم، عليك تفعيل هذه البيئة الافتراضية لضمان أن تنصب البرامج التي تنصبها من الآن ستكون منعزلة داخل هذه البيئة المنعزلة.

source fastapi-env/bin/activate

بعد التنفيذ، ستلاحظ التحديد المسبق للمسافر التجميلي مع اسم البيئة الافتراضية مثل هذا:

Output
(fastapi-env) ubuntu@user:

خطوة 3 – Instalar y habilitar 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 قابلًا للتنفيذ من قبل أي مستخدم على المachine.

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 للconfiguration

بعد ذلك، ستقوم بإنشاء ملف Dockerfile لهذه التطبيقة. يحدد ال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

في هذه الإ配置رات،

  • version: يحدد ال版本 التي ستستخدم في Docker Compose.
  • services: يحدد الخدمات التي يتم إنشاؤها.
  • web: يحدد اسم الخدمة التي يجري فيها تطبيق FastAPIك.
  • build: يحدد الدليل الذي ستبني منه الصورة الدوكر. في هذه الحالة، هو نفس الدليل الذي يوجد فيه docker-compose.yml.
  • ports: يوجد 8000 في محطة الجهاز الماستخدم و 80 داخل الحزمة.
  • volumes: يتم توجيه الدليل الحالي كحزمة داخل الحزمة، لذا يمكنك تحديث البرمجيات المباشرة.

الخطوة 6 – بناء وتشغيل الحاجز الدوكر

قم باستخدام Docker Compose لبناء صورة Docker هذه وبدء الحاجز:

sudo docker-compose build

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

sudo docker-compose up

الخطوة 7 – وصول لتطبيق FastAPI الخاص بك

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

الخطوة 8 [خياري] – إدارة حاجزك الدوكر

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

  • لإيقاف جهاز الحاجز المشتغل ، أضغط Ctrl + C أو أمر + ..

  • للحصول على التحكم مرة أخرى أثناء تشغيل البندر في الخلفية، قم باستخدام:

    sudo docker-compose up -d
    
  • لإيقاف وإزالة بندرك، قم بتشغيل:

    sudo docker-compose down
    

ختام

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

Source:
https://www.digitalocean.com/community/tutorials/create-fastapi-app-using-docker-compose