도커로 서버 배포 (fastapi)

jaybon·2022년 12월 9일
0

도커

목록 보기
4/4

메인 파일 설정

if __name__ == "__main__":
    # TODO 로컬 배포
    # uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
    # TODO 실서버 배포
    uvicorn.run("main:app", host="0.0.0.0", port=8000)

reqirements.txt

https://itholic.github.io/python-requirements/

https://mariadb.com/docs/server/connect/programming-languages/python/install/

마리아 db가 안깔릴 경우 reqirements.txt에서 mariadb를 1.0.11버전 또는 위에서 최신 커넥터가 1.0인 최신 버전을 설치

도커 파일

# 도커 허브에서 이미지를 가져와서 이미지를 작업한다
# FROM (이미지 이름:버전)
FROM python:3.10.7

# 컨테이너 실행 전 작동할 명령
# RUN (명령)
# 타임존 설정 (설정을 하지 않으면 시간 저장시 다른 시간대로 저장됨)
RUN ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
RUN echo Asia/Seoul > /etc/timezone

# 컨테이너 내 작업 경로
# WORKDIR (경로)
WORKDIR /app

# 파일 복사
COPY . .

# 파이썬 라이브러리 설치
RUN pip install -r requirements.txt

# 서버 실행
CMD python src/main.py

빌드

일반 빌드

docker build -t 이미지이름 도커파일경로

M1 맥북 빌드

docker build —platform linux/amd64 -t 이미지이름 도커파일경로

-t 옵션 : 이미지 태그

배포

docker run -it --restart=always -d -p 8000:8000 --name 컨테이너이름 이미지이름

-it : 컨테이너 접속용
--restart=always : 도커 재구동시 자동 실행
-d : 백그라운드 실행
-p : 포트설정 ex) 80:8080 80으로 접속시 8080으로 인바운드
--name : 컨테이너 이름 설정

인바운드 설정

프론트엔드의 주소만 받는 것이 좋다.

profile
티스토리 블로그 https://ondolroom.tistory.com/

0개의 댓글