독립적인 마이크로 서비스 서버 하나를 만들었으니.. 이걸 메인서버랑 분리가 가능하다...따라서!
도커를 사용해서 배포 쪽을 자동화 해보겠다.
최종 목표는... 이 서버는 GET 용으로 사용할 예정이기 때문에 서버 내부의 매커니즘이 inconsistent해질 일이 없다.
따라서 이중화를 해서 로드밸런싱 해보는 것 까지 목표로..!
FROM python:latest
WORKDIR /app
COPY ./requirements.txt /app/
RUN pip install -r requirements.txt
COPY . .
CMD uvicorn main:app --host=0.0.0.0 --port=8000
간단하게 이렇게 해놓고(포트번호는 일단 8000으로 해놓고 나중에 배포 단계에서 동적으로 할당시킬것 ex) 7999 8000 8001 8002 이런식으로 포트 여러개 찍어 내서 이중화할 예정 -> 여러 도커 인스턴스를 만들어놓고 앞에 미들웨어 서버 만들어서 GLB 역할하는 프로그램 하나 두면됨)
docker build -t capstone .
빌드하면...잘 된다!!
잘 되지만 견본이므로,, 저번주에 배운 몇가지 간단한 잔재주만 써보고 다시 공부하러 간다
FROM python:latest
WORKDIR /app
COPY ./requirements.txt /app/
RUN pip install -r requirements.txt
COPY . .
ARG DEFAULT_PORT=8000
ENV PORT $DEFAULT_PORT
EXPOSE $PORT
CMD uvicorn main:app --host=0.0.0.0 --port=$PORT --reload
1. 포트를 도커 런타임에서 설정할 수 있게 바꾸었다. 다만 설정하지 않는다면 포트번호는 8000
docker run -p 8000:8000 --rm --env PORT=8000 -v C:\Users\bjm77\PycharmProjects\capstone:/app:ro --name capstone-app capstone
2. 바인드 마운트 적용 - 프로덕트가 아니라 개발 모드이기 때문에 코드가 다 완성되기 전에는 당분간 이렇게 사용하기로 한다.
리로딩도 정확하게 된다!!
이제 모듈간 통신을...
도커 좀 더 공부해봐야겠다...
'프로젝트 > 캡스톤' 카테고리의 다른 글
[캡스톤] 재무 데이터 분석을 위한 전처리 - Fnguide 활용 (0) | 2022.12.03 |
---|---|
[캡스톤] 서버에서 사용할 부스팅 모델 만들기 (0) | 2022.11.29 |
[캡스톤] MSA 아키텍쳐 설계 (0) | 2022.11.18 |
피드백 및 자성 - 학습서버 (1) | 2022.11.12 |