Mục lục

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Hướng dẫn tạo ứng dụng FastAPI trên Ubuntu với Docker Compose

Ngày đăng: July 17, 2025

Ubuntu

description image FastAPI là một framework web hiện đại cho Python được thiết kế nhằm mang lại hiệu suất cao, làm cho nó trở thành lựa chọn tuyệt vời cho việc phát triển ứng dụng, đặc biệt là các ứng dụng có tích hợp AI.

Hướng dẫn này sẽ dẫn bạn qua quá trình tạo và thiết lập ứng dụng FastAPI trên máy Ubuntu sử dụng Docker Compose. Phương pháp này giúp đơn giản hóa việc triển khai và cung cấp nền tảng vững chắc để tích hợp AI vào ứng dụng của bạn.

Yêu cầu trước khi bắt đầu

Để làm theo hướng dẫn này, bạn sẽ cần:

  • Một máy chủ chạy Ubuntu cùng với người dùng không phải root có quyền sudo và tường lửa đang hoạt động. Để hướng dẫn cài đặt, vui lòng chọn bản phân phối của bạn từ danh sách này và làm theo hướng dẫn thiết lập máy chủ ban đầu của chúng tôi. Vui lòng đảm bảo sử dụng phiên bản Ubuntu được hỗ trợ. Trong hướng dẫn này, chúng tôi sử dụng máy Ubuntu 24.04 LTS.
  • Hiểu biết về dòng lệnh Linux. Để giới thiệu hoặc ôn tập về dòng lệnh, bạn có thể tham khảo hướng dẫn này về dòng lệnh Linux.
  • Chạy lệnh sudo apt-get update trong terminal Ubuntu để đảm bảo hệ thống của bạn có các phiên bản và bản cập nhật bảo mật mới nhất cho phần mềm được cấu hình trong các kho lưu trữ.

Lưu ý: Các hướng dẫn này áp dụng cho các phiên bản Ubuntu mới nhất như Ubuntu 24.04, Ubuntu 22.04, Ubuntu 20.04 và Ubuntu 18.04. Nếu bạn đang dùng Ubuntu <=16.04, chúng tôi khuyên bạn nên nâng cấp lên phiên bản mới hơn vì Ubuntu không còn hỗ trợ các phiên bản này. Bộ sưu tập hướng dẫn này sẽ giúp bạn nâng cấp máy Ubuntu.

Bước 1: Thiết lập môi trường Python

Trên máy Ubuntu 24.04, Python 3 đã được cài đặt sẵn. Mở terminal và chạy lệnh sau để kiểm tra lại việc cài đặt Python 3:

python3 --version

Nếu Python 3 đã được cài, lệnh này sẽ trả về phiên bản hiện tại của Python 3. Nếu chưa cài, bạn có thể chạy lệnh sau để cài đặt Python 3:

sudo apt install python3

Tiếp theo, bạn cần cài đặt các gói cài đặt pipdev trên hệ thống. Trình quản lý gói pip rất cần thiết để cài đặt các gói từ Python Package Index, trong khi gói dev cần thiết để xây dựng các module Python bao gồm mã đã biên dịch. Chạy lệnh sau trong terminal:

sudo apt install python3-pip python3-dev

Bước 2: Tạo và kích hoạt môi trường ảo

Nếu bạn đang sử dụng phiên bản Ubuntu thấp hơn 24.04, bạn không cần tạo môi trường ảo. Hãy chuyển tới bước tiếp theo.

Bước tiếp theo là tạo một môi trường ảo bên trong cài đặt Ubuntu của bạn để cách ly các gói Python khỏi môi trường hệ thống. Để làm điều này, hãy chuyển tới thư mục làm việc và chạy lệnh:

python3 -m venv fastapi-env

Lệnh này sẽ tạo một môi trường ảo mới trong thư mục có tên fastapi-env. Các gói cài đặt sau này sẽ được cách ly khỏi các dự án khác.

Tiếp theo, bạn cần kích hoạt môi trường ảo này để đảm bảo các gói cài đặt được cài bên trong môi trường cách ly này:

source fastapi-env/bin/activate

Khi thực thi, bạn sẽ thấy dòng lệnh trên terminal được tiền tố với tên môi trường ảo như sau:

(fastapi-env) ubuntu@user:

Bước 3: Cài đặt và kích hoạt Docker

Bước tiếp theo là cài đặt Docker và Docker Compose bên trong môi trường ảo của bạn.

sudo apt install -y docker.io

Sau khi cài đặt Docker, hãy khởi động dịch vụ Docker và cho phép nó tự động khởi động cùng hệ thống:

sudo systemctl start docker
sudo systemctl enable docker

Để đảm bảo bạn có phiên bản ổn định mới nhất của Docker Compose, bạn sẽ tải nó từ kho GitHub chính thức thay vì dùng apt.

Trước tiên, xác nhận phiên bản mới nhất có trên trang phát hành GitHub chính thức của Docker, sau đó chạy lệnh CURL sau trong terminal:

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

Thực thi lệnh tiếp theo để làm cho tập tin nhị phân docker-compose có thể thực thi bởi bất kỳ người dùng nào trên máy:

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

Kiểm tra cài đặt bằng cách chạy:

docker-compose --version

Bước 4: Tạo ứng dụng FastAPI

Bây giờ là lúc bắt đầu tạo ứng dụng Python sử dụng framework FastAPI. Đầu tiên, tạo một tập tin main.py:

nano main.py

Dưới đây là một ví dụ về ứng dụng Python tạo một API web đơn giản sử dụng FastAPI và một mô hình AI đã được huấn luyện sẵn để phân tích cảm xúc của đoạn văn bản nhập vào.

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)

Để chạy ứng dụng này thành công, bạn sẽ cần các phụ thuộc, tuy nhiên không phải tự tay cài đặt thủ công. Việc cài đặt các gói này sẽ được xử lý trong Dockerfile, nhắc đến trong bước tiếp theo.

Bước 5: Tạo tệp Dockerfile và tệp cấu hình YAML

Tiếp theo, bạn sẽ tạo Dockerfile cho ứng dụng này. Dockerfile định nghĩa môi trường chạy ứng dụng FastAPI của bạn. Tạo file Dockerfile trong thư mục dự án bằng cách chạy:

nano Dockerfile

Trong trình soạn thảo, thêm nội dung sau:

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 giúp đơn giản hóa việc quản lý các ứng dụng đa container. Tiếp theo, bạn cần tạo file cấu hình docker-compose.yml trong thư mục dự án.

nano docker-compose.yml

Thêm nội dung sau vào file trống:

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

Trong cấu hình này:

  • version: Xác định phiên bản Docker Compose sử dụng.
  • services: Định nghĩa các dịch vụ cần tạo.
  • web: Tên dịch vụ chạy ứng dụng FastAPI của bạn.
  • build: Thư mục để build hình ảnh Docker, ở đây là thư mục chứa file docker-compose.yml.
  • ports: Mapping cổng 8000 trên máy chủ sang cổng 80 bên trong container.
  • volumes: Gắn thư mục hiện tại như volume bên trong container để bạn có thể reload code trực tiếp.

Bước 6: Build và chạy container Docker

Sử dụng Docker Compose để build ảnh Docker và khởi chạy container:

sudo docker-compose build

Lệnh này build ảnh Docker từ Dockerfile trong thư mục hiện tại. Để chạy ứng dụng, thực thi lệnh sau trong terminal:

sudo docker-compose up

Bước 7: Truy cập ứng dụng FastAPI của bạn

Khi container đang chạy, bạn có thể truy cập ứng dụng FastAPI của mình bằng cách mở trình duyệt và điều hướng đến http://localhost:8000.

Bước 8 [TÙY CHỌN]: Quản lý container Docker của bạn

Đây là một số mẹo giúp bạn kiểm soát tốt hơn môi trường container chạy ứng dụng FastAPI.

  • Để dừng container đang chạy, nhấn <strong>Ctrl</strong> + <strong>C</strong> hoặc <strong>Command</strong> + <strong>.</strong>.
  • Để lấy lại điều khiển khi container chạy ở chế độ nền, sử dụng:
sudo docker-compose up -d
  • Để dừng và xóa container của bạn, chạy:
sudo docker-compose down

Kết luận

Trong hướng dẫn này, bạn đã học cách tạo và thiết lập một ứng dụng FastAPI trên máy Ubuntu sử dụng Docker Compose. Với tốc độ của FastAPI và hiệu quả của Docker, bạn có thể xây dựng các ứng dụng mạnh mẽ, có khả năng mở rộng với sự tự tin.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời