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 updatev 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 jeumiestnený 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 -dAk 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.
