כיצד לבנות אפליקציה של API מהירה בשימוש ב-Docker Compose

קצת על מהותה

FastAPI היא מערכת גלובלית מודרנית לאתרים שמעוצבת עבור פיתוח ביצועים גבוהים, ומה שהופכת אותה לבחירה מעולה לפיתוח יישומים, בעיקר יישומים מונעים על ידי ממשקים AI.

המדריך הזה ידורך אתכם דרך תהליך יצירת והגדרת יישום FastAPI על מחשב Ubuntu בעזרת Docker Compose. השיטה הזו מאדוקת את הגישה להשתמש בו ומעניקה יסוד חזק להתאמה של AI ביישומים שלכם.

בניית יישום 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 מותקן ready on your machine, this command will return the current version of Python 3 installation. In case it is not installed, you can run the following command and get the Python 3 installation:

sudo apt install python3

Next, you need to install the pip and dev package installers on your system. the pip package manager is essential for installing packages from Python Package Index, while the dev package is needed to build Python modules that include compiled code.
Run the following command in the terminal:

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 – התקנת Docker והאפשרות לו

השלב הבא הוא להתקין Docker ו Docker Compose בסבך הוירטואלי שלך.

sudo apt install -y docker.io

אחרי התקנת Docker, התחיל את שירות ה Docker ואפשר אותו להתחיל באתחול המערכת:

sudo systemctl start docker
sudo systemctl enable docker

כדי להבטיח שתקבלו את הגירסה החדשה היציבה של Docker Compose, תהווידאו אותה מהאתר הרשמי הגיטאבו שלו במקום של השימוש ב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

עכשיו הגיע הזמן להתחיל ביצירת יישומון פייתון שישתמש בפקטיביקים המהירים. ראשית, יצירו main.py:

nano main.py

הנה דוגמה ליישומון פייתון של פייתון שיוצר את האינטרנט הפשוט הזה בעזרת פקטיביקים FastAPI ומודל AI מאוד מאומן על מנת לאנליזה את הרגשות של טקסט נתנה.

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 הגדרות

בשלב הבא, תיצרו דוקרפיל עבור היישום הזה. דוקרפיל זה מגדיר את הסביבה בה היישום שלכם של 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.yml עם הגדרות במחשב הפעלה שלכם.

nano docker-compose.yml

הוסיפו את התוכן הבא לקובץ ריק:

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

בהגדרה הזו,

  • version: מגדירה את הגירסה של Docker Compose שתשתמשו בה.
  • services: מגדירה את השירותים שתיצורו.
  • web: מגדירה את שמו של השירות המופעל עם היישום של FastAPI שלכם.
  • build: מגדירה את המיקום שממשיך לבנות את התמונה של Docker ממנו. במקרה זה, זה אותו מיקום בו מוצג docker-compose.yml.
  • ports: מתאים את הפורט 8000 על המחשב המקומי לפורט 80 בתוך התא.
  • volumes: מוצב את המחשב הפעלה הקיים כתובית בתוך התא, כך שתוכלו לרענן את הקוד החי.

שלב 6 – בנה והריץ את המיכל הדוקרי

השתמש ב-Docker Compose כדי לבנות את הדימות הדוקרי ולהתחיל את המיכל:

sudo docker-compose build

פקודה זו בונה את דימות הדוקרי מה-Dockerfile בתיקייה הנוכחית. עכשיו, כדי להריץ את היישום הממשי, הריץ את הפקודה הבאה במסוף:

sudo docker-compose up

שלב 7 – גש ליישום FastAPI שלך

ברגע שהמיכל רץ, תוכל לגשת ליישום FastAPI שלך על ידי הגעה ל־http://localhost:8000 בדפדפן האינטרנט שלך.

שלב 8 [אופציונלי] – נהל את המיכל הדוקרי שלך

הנה כמה טיפים שיעזרו לך לשלוט טוב יותר בסביבת המיכל המובנת שמריץ את היישום FastAPI שלך.

  • כדי לעצור את המיכל הפועל, לחץ Ctrl + C או Command + ..

  • על מנת להחזיר את השליטה בזמן שהחתיכה נעה ברקע, השתמשות ב:

    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