웹 개발/프로젝트

[웹 크롤링 프로젝트] 05. Fast API 도커 배포 - 1 (FastAPI 시작하기 수정)

내만 2022. 11. 25. 16:16
728x90
반응형

 

728x90
반응형

 

 

 

 

🙆‍♂️ 프로젝트 생성


1. VS Code 가상환경 설정

먼저 VS Code에서 폴더를 선택해주고 

 

VS Code의 터미널에서 

python -m venv {가상환경이름}

위의 코드를 통해서 가상환경을 만들어주면 위의 이미지처럼 나오게됩니다.

저는 가상환경 이름을 venvAPI로 했습니다.

 

2. 가상환경 진입

우선 만든 가상환경 폴더 안에 있는 Scripts라는 폴더로 이동하고

activate를 실행해주면

 

가상환경에 진입하게 됩니다.

 

3. 파이썬 가상환경 인식

파이썬 가상환경 인식을 위해 아무 파이썬 파일을 생성하고 

우측 하단에 보면 Python 어쩌구 버전이 나오는데 숫자를 클릭해보면

 

저기에서 추천하는 venv의 파이썬을 쓰겠다는 부분으로 인터프리터를 바꿔주면

가상환경에서 파이썬 인식이 됩니다.

 

4. 파일 구조 설정

app이라는 폴더를 만들어서 API 코드가 담길 파이썬 파일을 넣어주고

도커 이미지를 만드는 Dockerfile과

테스트에 사용하는 샘플인 docker-compose.yaml파일을 생성해줍니다.

 

🙆‍♂️ FastAPI 설정


1. FastAPI를 위한 패키지 설치

 

FastAPI 시작을 위해 두 개의 패키지를 설치해줍니다.

 

2. FastAPI를 배포를 위한 패키지 리스트 출력

pip freeze > requirements.txt

위 명령어를 통해서 가상환경에 설치된 패키지 리스트를 requirements.txt로 출력하게 됩니다.

 

내용을 보면 방금 설치한 fastapi와 uvicorn 이외에도 제 컴퓨터에 설치된 다양한 패키지들이 정의되어 있네요.

requirements.txt 파일 위치는 app 폴더 밑으로 옮기겠습니다.

 

 

🙆‍♂️ FastAPI 예시 코드 작성


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}

main.py에 공식문서에서 제공하는 코드를 입력 후

 

 

uvicorn main:app --reload

위의 명령어를 터미널에서 해당 main.py가 있는 파일이 있는 폴더로 입력한 후

입력하면 서버가 얼려서 해당 주소(127,0,0,1:8000)이라고 나오는 저기 주소로 들어가면

 

Hello World가 출력되는 것을 볼 수 있습니다.

 

이제 도커로 이미지를 따서 배포하는 방법은 2부에서 정리하도록 하겠습니다.

 

 

728x90
반응형