기존 Deploy 방식의 문제는 python manage.py runserver
에 있다. 이 방식은 디버깅용이지 릴리즈(배포)용은 아니기 때문이다.
수정해 보자.
Gunicorn
django내에 설치하며 runserver를 대체한다.
Nginx <-> gunicorn <-> django
$ pip install gunicorn
$ pip freeze > requirements.txt
FROM python:3.10.0
WORKDIR /home/
RUN git clone https://github.com/EasyCoding-7/django-basic-example.git
WORKDIR /home/django-basic-example/
RUN pip install -r requirements.txt
RUN pip install gunicorn
RUN echo "SECRET_KEY=django-insecure-z+6ry2y*usa_5n3c7)h&26$j-)@7j+iu!odo(nx=ts-h@o&oip" > .env
RUN python manage.py migrate
EXPOSE 8000
CMD ["gunicorn","pragmatic.wsgi", "--bind", "0.0.0.0:8000"]
RUN pip install gunicorn
를 굳이 넣는이유는 컨테이너 아래서 빌드하다보니 캐쉬로 지난 도커빌드정보가 남는다.
도커 이미지 생성
컨테이너 생성 후 실행
스타일이 모두 깨진다?? -> Nginx로 해결해야한다.(다음강)