Ako vytvoriť rýchlu aplikáciu API pomocou Docker Compose


Zavedenie

FastAPI je moderný webový rámec pre Python, ktorý je navrhnutý tak, aby poskytoval vysoký výkon, vďaka čomu je vynikajúcou voľbou pre vývoj aplikácií, najmä aplikácií poháňaných umelou inteligenciou.

Tento návod vás prevedie procesom vytvárania a nastavovania aplikácie FastAPI na počítači s operačným systémom Ubuntu pomocou Docker Compose. Táto metóda zjednodušuje nasadenie a poskytuje pevný základ pre integráciu AI do vašich aplikácií.

Predpoklady

Ak chcete postupovať podľa tohto návodu, budete potrebovať:

  • Server so systémom Ubuntu spolu s používateľom, ktorý nie je root, s oprávneniami sudo a aktívnym firewallom. Ak chcete získať pokyny, ako to nastaviť, vyberte svoju distribúciu z tohto zoznamu a postupujte podľa nášho úvodného sprievodcu nastavením servera. Uistite sa, že pracujete s podporovanou verziou Ubuntu. V tomto návode používame stroj Ubuntu 24.04 LTS.

  • Oboznámenie sa s príkazovým riadkom Linuxu. Ak chcete získať úvod alebo obnovenie príkazového riadku, môžete navštíviť túto príručku na základe príkazového riadka Linuxu.

  • Spustite sudo apt-get update v termináli Ubuntu, aby ste sa uistili, že váš systém má najnovšie verzie a bezpečnostné aktualizácie pre softvér dostupné z úložísk nakonfigurovaných vo vašom systéme.

Tieto pokyny platia pre najnovšie verzie Ubuntu, tj Ubuntu 24.04, Ubuntu 22.04, Ubuntu 20.04 a Ubuntu 18.04. Ak používate Ubuntu <=16.04, odporúčame vám inovovať na najnovšiu verziu, pretože Ubuntu už neposkytuje podporu pre tieto verzie. Táto zbierka sprievodcov vám pomôže pri aktualizácii vášho počítača Ubuntu.

Krok 1 - Nastavenie prostredia Python

V počítači s Ubuntu 24.04 je Python 3 už predvolene nainštalovaný. Otvorte terminál a spustite nasledujúci príkaz na dvojitú kontrolu inštalácie Pythonu 3:

python3 --version

Ak je Python 3 už nainštalovaný na vašom počítači, tento príkaz vráti aktuálnu verziu inštalácie Pythonu 3. V prípade, že nie je nainštalovaný, môžete spustiť nasledujúci príkaz a získať inštaláciu Pythonu 3:

sudo apt install python3

Ďalej musíte do svojho systému nainštalovať inštalátory balíkov pip a dev. správca balíkov pip je nevyhnutný na inštaláciu balíkov z indexu balíkov Pythonu, zatiaľ čo vývojársky balík je potrebný na zostavenie modulov Pythonu, ktoré obsahujú skompilovaný kód.\nV termináli spustite nasledujúci príkaz:

sudo apt install python3-pip python3-dev

Krok 2 - Vytvorenie a aktivácia virtuálneho prostredia

Ak používate Ubuntu verzie < 24.04, nemusíte vytvárať virtuálne prostredie. Prejdite na ďalší krok.

Ďalším krokom je vytvorenie virtuálneho prostredia vo vašej inštalácii Ubuntu na izoláciu balíkov Python od vášho systémového prostredia. Ak to chcete urobiť, prejdite do pracovného adresára a spustite nasledujúci príkaz:

python3 -m venv fastapi-env

Tento príkaz vytvorí nové virtuálne prostredie v adresári s názvom fastapi-env. Akékoľvek balíky, ktoré odteraz nainštalujete, budú izolované od ostatných projektov.

Ďalej musíte aktivovať toto virtuálne prostredie, aby ste zabezpečili, že balíky, ktoré inštalujete od tohto momentu, sa nainštalujú do tohto izolovaného prostredia.

source fastapi-env/bin/activate

Pri spustení si všimnete výzvu terminálu s predponou názvu vášho virtuálneho prostredia takto:

(fastapi-env) ubuntu@user:

Krok 3 – Nainštalujte a povoľte Docker

Ďalším krokom je inštalácia Docker a Docker Compose do vášho virtuálneho prostredia.

sudo apt install -y docker.io

Po nainštalovaní Dockeru spustite službu Docker a povoľte jej spustenie pri spustení systému:

sudo systemctl start docker
sudo systemctl enable docker

Aby ste sa uistili, že získate najnovšiu stabilnú verziu Docker Compose, stiahnete si ju z jeho oficiálneho úložiska GitHub, a nie z použitia apt.

Najprv skontrolujte, či je najnovšia verzia dostupná na oficiálnej stránke vydaní GitHubu spoločnosti Docker, a potom v termináli spustite nasledujúci príkaz 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

Vykonajte nasledujúci príkaz, aby bol binárny súbor docker-compose spustiteľný akýmkoľvek používateľom počítača.

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

Overte inštaláciu spustením:

docker-compose --version

Krok 4 – Vytvorenie aplikácie FastAPI

Teraz je čas začať vytvárať aplikáciu v jazyku Python, ktorá používa rámec FastAPI. Najprv vytvorte main.py súbor:

nano main.py

Nasleduje ukážková aplikácia jazyka Python, ktorá vytvára jednoduché webové rozhranie API pomocou rámca FastAPI a vopred natrénovaného modelu umelej inteligencie na analýzu sentimentu daného textu.

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)

Na úspešné spustenie tejto aplikácie budete potrebovať požadované závislosti, ale nemusíte ich inštalovať ručne. Inštalácia týchto balíkov bude prebiehať vo vnútri súboru Dockerfile, ktorý je uvedený v ďalšom kroku.

Krok 5 – Vytvorenie súboru Dockerfile a konfiguračného YAML

Ďalej vytvoríte súbor Dockerfile tejto aplikácie. Tento súbor Dockerfile definuje prostredie, v ktorom bude vaša aplikácia FastAPI bežať. Vytvorte súbor Dockerfile v adresári projektu spustením:

nano Dockerfile

V textovom editore pridajte nasledujúci obsah:

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 zjednodušuje správu aplikácií s viacerými kontajnermi. Ďalej je potrebné vytvoriť docker-compose.yml konfiguračný súbor v adresári projektu.

nano docker-compose.yml

Do prázdneho súboru pridajte nasledujúci obsah:

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

V tejto konfigurácii

  • version: Určuje verziu Docker Compose, ktorá sa má použiť.
  • services: Definuje služby, ktoré sa majú vytvoriť.
  • web: Určuje názov služby, na ktorej je spustená aplikácia FastAPI.
  • build: Určuje adresár, z ktorého sa má zostaviť obraz Dockeru. V tomto prípade ide o rovnaký adresár, do ktorého je umiestnený docker-compose.yml.
  • porty: Mapuje port 8000 na hostiteľskom počítači na port 80 vo vnútri kontajnera.
  • volumes: Pripojí aktuálny adresár ako zväzok vo vnútri kontajnera, aby ste mohli znova načítať živý kód.

Krok 6 – Zostavenie a spustenie kontajnera Dockeru

Pomocou nástroja Docker Compose vytvorte tento obraz Dockeru a spustite kontajner:

sudo docker-compose build

Tento príkaz zostaví obraz Dockeru zo súboru Dockerfile v aktuálnom adresári. Teraz, ak chcete spustiť skutočnú aplikáciu, vykonajte v termináli nasledujúci príkaz:

sudo docker-compose up

Krok 7 – Prístup k aplikácii FastAPI

Po spustení kontajnera môžete získať prístup k aplikácii FastAPI tak, že prejdete na http://localhost:8000 vo webovom prehliadači.

Krok 8 [VOLITEĽNÉ] – Spravujte svoj kontajner Docker

Tu je niekoľko tipov, ktoré vám pomôžu lepšie kontrolovať kontajnerové prostredie, na ktorom beží vaša aplikácia FastAPI.

  • Ak chcete zastaviť spustený kontajner, stlačte Ctrl + C alebo Command + ..

  • Ak chcete získať späť ovládanie pri spustení kontajnera na pozadí, použite:

    sudo docker-compose up -d
    
  • Ak chcete zastaviť a odstrániť kontajner, spustite postup:

    sudo docker-compose down
    

Záver

V tomto kurze ste sa naučili, ako vytvoriť a nastaviť aplikáciu FastAPI na počítači s Ubuntu pomocou Docker Compose. Vďaka rýchlosti a efektivite FastAPI môžete s istotou vytvárať robustné a škálovateľné aplikácie.

Súvisiace články: