[Gunicorn] 멀티 프로세스 아키텍쳐 Docker 활용 관련 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki
1. Dockerfile
FROM python:3.10
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["gunicorn", "-c", "gunicorn.conf.py", "app.main:app"]
2. docker-compose.yml
에 restart 정책 설정
version: "3.8"
services:
fastapi:
build: .
ports:
- "8000:8000"
restart: always # 🛠 마스터 프로세스가 다운되면 자동 재시작
deploy:
resources:
limits:
cpus: '2.00'
memory: 2g
environment:
- GUNICORN_CMD_ARGS=--bind=0.0.0.0:8000
restart: always
: 도커 레벨에서 마스터 프로세스 다운 시 전체 컨테이너 재시작
deploy.resources.limits
: GCP나 기타 VM에서 과도한 사용 방지
- docker-compose.yml을 통해 운영/배포 설정