>  기사  >  백엔드 개발  >  FastAPI에서 Docker 컨테이너화를 사용하여 애플리케이션을 배포하는 방법

FastAPI에서 Docker 컨테이너화를 사용하여 애플리케이션을 배포하는 방법

WBOY
WBOY원래의
2023-07-28 13:25:513958검색

FastAPI에서 Docker 컨테이너화를 사용하여 애플리케이션을 배포하는 방법

소개:
Docker는 애플리케이션과 해당 종속성을 독립적인 휴대용 컨테이너에 패키징하여 신속한 배포와 확장을 가능하게 하는 컨테이너화 기술입니다. FastAPI는 간단하고 빠른 API 개발 환경을 제공하는 Python 기반의 최신 고성능 웹 프레임워크입니다. 이 문서에서는 Docker 컨테이너화를 사용하여 FastAPI에 애플리케이션을 배포하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1단계: FastAPI 애플리케이션 생성
먼저 간단한 FastAPI 애플리케이션을 생성해야 합니다. 다음은 간단한 예입니다.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

위 코드에서는 사용자가 루트 경로를 통해 애플리케이션에 액세스할 때 JSON 응답을 반환하는 기본 FastAPI 애플리케이션을 만들었습니다.

2단계: Dockerfile 작성
다음으로 Docker 이미지를 빌드하는 데 사용되는 Dockerfile을 작성해야 합니다. 프로젝트의 루트 디렉토리에 Dockerfile이라는 파일을 생성하고 다음 콘텐츠를 추가합니다.

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7

COPY ./app /app

WORKDIR /app

RUN pip install -r requirements.txt

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]

위 Dockerfile에서는 먼저 FastAPI tiangolo/uvicorn-gunicorn-fastapi:python3.7에 적합한 기본 이미지를 선택했습니다. 그런 다음 프로젝트 디렉터리의 app 폴더를 컨테이너의 /app 디렉터리에 복사하고 작업 디렉터리를 /app으로 설정합니다. 다음으로, pip install -r 요구사항.txt를 실행하여 애플리케이션의 종속성을 설치합니다. 마지막으로 CMD 명령을 사용하여 애플리케이션을 시작합니다.

3단계: Docker 이미지 빌드
명령줄에서 프로젝트의 루트 디렉터리로 전환하고 다음 명령을 실행하여 Docker 이미지를 빌드합니다.

docker build -t fastapi-app .

위 명령은 Dockerfile을 사용하여 fastapi-app. '.'은 Dockerfile이 현재 디렉터리에 있음을 의미합니다.

4단계: Docker 컨테이너 실행
Docker 이미지를 빌드한 후 다음 명령을 사용하여 Docker 컨테이너를 실행할 수 있습니다.

docker run -d -p 80:80 fastapi-app

위 명령에서 -d는 컨테이너를 데몬으로 실행하는 것을 의미하고 -p 80 :80은 호스트 포트 80이 컨테이너의 포트 80에 매핑된다는 의미이며, fastapi-app은 실행할 Docker 이미지를 나타냅니다.

이제 FastAPI 애플리케이션을 성공적으로 컨테이너화하고 Docker를 통해 실행했습니다.

결론:
FastAPI 애플리케이션을 컨테이너화하면 신속한 배포와 확장이 가능합니다. Docker 컨테이너를 사용하면 애플리케이션과 해당 종속성을 독립형 휴대용 컨테이너로 쉽게 패키징하여 배포 및 구성의 복잡성을 줄일 수 있습니다. 이 문서에서는 Docker 컨테이너화를 사용하여 FastAPI에서 애플리케이션을 배포하는 방법을 설명하고 해당 코드 예제를 제공합니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 FastAPI에서 Docker 컨테이너화를 사용하여 애플리케이션을 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.