FastAPI는 uvicornhttps://www.uvicorn.org/ 의 asgi프로토콜을 이용해서 서버를 주로 사용한다.
그렇다면 Docker로 배포할 때, uvicorn을 사용하기 위한 Dockerfile의 구성을 보자.
# python version setting
FROM python:3.9
# work directory setting
WORKDIR /code
# requirements install
COPY ./requirements.txt /code/requirements.txt
# requirements install
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
# copy code
COPY ./app /code/app
# uvicorn run
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
사용하려는 python 버전을 구성하고, WORKDIR에 있는 앱 코드들을 복사하여 uvicorn run을 시도한다.
필요에 따라 requirements.txt를 작성하고, 각 WORKDIR를 설정하면 되겠다.
uvicorn 서버를 돌아가는 port등을 수정해서 사용하면 되겠다.
참고
https://fastapi.tiangolo.com/deployment/docker/
'DevOps > Docker' 카테고리의 다른 글
[Docker] 어느새 자동 배포가 적용되지 않을 때 (0) | 2023.09.02 |
---|---|
[Docker] GitHub Action을 이용한 Amazon EC2 Spring 프로젝트 자동 배포 환경 구축 (0) | 2023.09.02 |