Docker Compose를 사용하여 빠른 API 애플리케이션을 빌드하는 방법

소개

FastAPI는 고성능을 제공하기 위해 설계 되었으며, 특히 AI-기반 应用程序 开発에 적절한 contemporaneous web framework for Python입니다.

이 튜토리얼은 Ubuntu 기기에 Docker Compose를 사용하여 FastAPI 应用程序 를 만들고 설정하는 과정을 가이드 합니다. 이 방법은 배치를 간편하게 하며 AI를 应用程序에 統合하는 데 강한 기반을 제공합니다.

Docker Compose를 사용하여 FastAPI 应用程序 構築

사전요구사항

이 튜토리얼을 따라가려면:

  • Ubuntu 서버를 실행하고 있는 것과 같은 Non-root 사용자가 sudo 권한을 가진 것과 활성화 된 防火墙이 있어야 합니다. 이를 세팅하는 방법은 다음 목록에서 您的 배포를 고르고 我们的 기본 서버 세팅 가이드를 따라야 합니다. 우리의 이 튜토리얼에서는 Ubuntu 24.04 LTS 计算机을 사용하고 있습니다.

  • Linux コマンドラ인에 대한 熟练さ。Linux コマンドラ인에 대한 初心者나 리 fresher이신가요? Linux コマンドラ인 入门가이드를 参照하시면 도움이 됩니다.

  • Ubuntu terminelinde sudo apt-get update 명령을 실행하십시오. 이를 통해 시스템에 등록되어 있는 저장소에서 사용 가능한 소프트웨어에 대한 最新버전과 보안 갱신을 확인할 수 있습니다.

이 지침은 Ubuntu의 가장 최신 버전인 Ubuntu 24.04, Ubuntu 22.04, Ubuntu 20.04, 그리고 Ubuntu 18.04에 대해 유효합니다. Ubuntu <=16.04를 사용하고 있다면, Ubuntu가 이러한 버전에 대한 지원을 더 이상 제공하지 않습니다만, 더 최신 버전으로 upgrade하는 것을 建议드립니다. 이 안내 모음이 あなた의 Ubuntu 기기 업그레이드에 도울 것입니다.

단계 1 – Python 환경 설정

Ubuntu 24.04 기기에서는 기본적으로 Python 3이 설치되어 있습니다. 终端을 열고 다음 명령어를 실행하여 Python 3의 설치 여부를 다시 확인하십시오:

python3 --version

Python 3이 이미 您的 기기上에 설치되어 있다면, 이 명령어는 Python 3의 현재 버전을 돌려 주게 됩니다. 설치되어 있지 않는 경우, 다음 명령어를 실행하여 Python 3 설치를 받을 수 있습니다:

sudo apt install python3

次に, pipdev 패키지 Installer를 시스템에 설치해야 합니다. pip 패키지 관리자는 Python 패키지 인덱스에서 패키지를 설치하는 데 필수적이며, dev 패키지는 컴파일 코드가 포함된 Python 모듈을 빌드하는 데 필요합니다. 终端에서 다음 명령어를 실행하십시오:

sudo apt install python3-pip python3-dev

STEP 2 – 가상 환경 생성 및 활성화

<$>
Ubuntu 버전 < 24.04를 사용하고 있다면, 가상 환경 생성이 필요하지 않습니다. 이를 건너뛰고 다음 단계로 이동하십시오.

이제 우분투 설치 내에 가상 환경을 생성하여 Python 패키지를 시스템 환경과 분리시키는 것이 다음 단계입니다. 이를 실행하려면, 작업 디렉터리로 이동하고 다음 명령을 실행하십시오:

python3 -m venv fastapi-env

이 명령은 fastapi-env이라는 디렉터리에 새 가상 환경을 생성하게 됩니다. 이제부터 설치하는 모든 패키지는 다른 프로젝트와 분리되어 있습니다.

次에, 이제 이 가상 환경을 활성화하여 이제 이 분리된 환경에서 설치하는 모든 패키지가 설치되도록 합니다.

source fastapi-env/bin/activate

실행 후, 터미널 입력이 가상 환경 이름을 접두사로 가진 것을 알 수 있을 것입니다:

Output
(fastapi-env) ubuntu@user:

STEP 3 – Docker 설치 및 활성화

다음 단계는 가상 환경 내에서 Docker과 Docker Compose를 설치하는 것입니다.

sudo apt install -y docker.io

Docker를 설치한 후, Docker 서비스를 시작하고 시스템 引导시에 자동으로 시작되도록 启用하십시오:

sudo systemctl start docker
sudo systemctl enable docker

Docker Compose의 가장 최신 안정화된 버전을 얻으려면, apt를 사용하는 것보다는 공식 GitHub 저장소에서 다운로드하셔야 합니다.

먼저, 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 애플리케이션 생성

FastAPI 프레임워크를 사용하는 파이썬 애플리케이션을 생성하는 시간입니다. 먼저, main.py 파일을 생성하십시오:

nano main.py

다음은 FastAPI 프레임워크를 사용하여 간단한 웹 API를 생성하고 사전에 훈련된 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에서 처리됩니다.

第五步 – 创建 Dockerfile 和配置 YAML

다음으로, 이 응용 프로그램의 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 이미지를 構築하는 디렉터리를 지정합니다. 이 경우, docker-compose.yml가 위치하는 동일한 디렉터리입니다.
  • ports: 호스트 计算机의 8000 포트를 컨테이너 내의 80 포트로 매핑합니다.
  • volumes: 현재 디렉터리를 컨테이너 내에 볼륨로 마ount 합니다. 이렇게 하면 실시간 코드 재로드를 할 수 있습니다.

스텝 6 – 도커 컨테이너 빌드 및 실행

도커 コンポーザ에서 이 도커 이미지를 빌드하고 컨테이너를 시작하십시오:

sudo docker-compose build

이 명령은 현재 디렉터리의 Dockerfileから 도커 이미지를 빌드합니다. 이제, 실제 应用程序을 실행하기 위해서는 터미널에서 다음 명령을 실행하십시오:

sudo docker-compose up

스텝 7 – 极速API 应用程序에 アクセス

컨테이너가 실행 중이면, 极速API 应用程序にはWEB 브라우저에서 http://localhost:8000 주소로 이동하여 접근할 수 있습니다.

스텝 8 [옵션AL] – 极速API 应用程序 컨테이너 관리

极速API 应用程序을 실행하고 있는 컨테이너화 환경을 更好地 제어하는 몇 가지 팁을 제공합니다.

  • 실행 중인 컨테이너를 중지하려면, Ctrl + C 또는 Command + .를 눌러 주십시오.

  • 컨테이너를 백그라운드에서 실행 중일 때 다시 Control을 가져오려면 다음을 사용하세요:

    sudo docker-compose up -d
  • Container를 중지하고 제거하려면 다음을 실행하세요:

    sudo docker-compose down

結論

이 튜토리얼에서는 FastAPI 应用程序을 Ubuntu 컴퓨터에 Docker Compose를 사용하여 만들고 설정하는 方法을 배웠습니다. FastAPI의 속도와 Docker의 효율성을 사용하여 신뢰성 있는, 확장性 있는 응용 프로그램을 빌 수 있습니다.

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