본문 바로가기
Linux/Docker

도커(docker) 파일 작성 방법 예시 feat.FastAPI

by 시바도지 2023. 8. 10.
반응형

도커 파일 작성 예시로 간단한 back-end 서버를 만들어 본다.

 

다음은 파이썬 FastAPI 백엔드 서버를 작성한 후 docker 이미지를 생성하는 예시이다.

Docker가 설치되어 있다는 가정하에 작성한다.

 

1. FastAPI 백엔드 서버 작성

 

main.py

from typing import Union
from fastapi import FastAPI

app = FastAPI()

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

@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

 

 

requirements.txt

fastapi
uvicorn

파이썬 필요한 패키지를 담은 파일

 

 

dockerfile

# 베이스 이미지 설정 (Python 3.8 기반의 공식 이미지 사용)
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

# 작업 디렉토리 설정
WORKDIR /server

# 호스트의 현재 디렉토리의 모든 파일을 컨테이너의 /app 디렉토리로 복사
COPY ./server /server

# 필요한 패키지 설치
RUN pip install --no-cache-dir -r requirements.txt

# 컨테이너 실행 명령 설정 (uvicorn으로 FastAPI 앱 실행)
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]

 

 

위의 작성한 3개의 파일(main.py, requirements.txt, dockerfile)을 모두 같은 디렉토리에 위치시키고, 터미널에서 다음의 명령어를 실행하여 도커 이미지를 build한다.

docker build -t fastapi-server .

 

 

이미지가 빌드되면 다음의 명령으로 컨테이너를 실행한다.

docker run -d -p 8080:8080 fastapi-server

 

 

웹 브라우저에서 `http://localhost:8080`에 접속하여 정상적으로 서버의 응답이 오는지 확인한다.

또는 터미널에서 `curl http://localhost:8080` 명령을 통해 서버로 부터 json 형식의 응답을 확인할 수 있다.

반응형

댓글