앞서 적용한 django와 mysql 이후로 python manage.py runserver 로 서버를 구동하지 않고, gunicorn을 이용해서 서버를 구동시키려 한다.
1. gunicorn을 사용하기 위한 static 설정
static을 모두 복사하기 위해 아래의 코드를 터미널에 입력한다.
python manage.py collectstatic
그 다음, 아래의 라이브러리를 설치한다.pip install whitenoise pip freeze > requirements.txt
라이브러리를 설치하였으면, settings.py 와 urls.py에서 static 옵션을 수정 및 추가한다.# config/settings.py . . STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' . . MIDDLEWARE = [ 'whitenoise.middleware.WhiteNoiseMiddleware', . . . ] . . STATIC_ROOT = os.path.join(BASE_DIR, '_static') . .
# config/urls.py from django.conf.urls.static import static from config import settings . . . urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
2. docker-compose.yml 파일에 gunicorn 적용
먼저 라이브러리를 설치한다.
pip install gunicorn pip freeze > requirements.txt
command 부분을 gunicorn으로 변경한다.
# docker-compose.yml web: . . . command: - bash - -c - | gunicorn config.wsgi:application --bind 0.0.0.0:8000 . . .
물론 로컬에서도 gunicorn을 구동시켜서 확인할 수 있다.
gunicorn config.wsgi:application
docker-compose.yml 파일을 수정했으면, docker-compose up -d로 실행시킨다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] 도커의 데이터 관리 및 저장 (volume, mount) (0) | 2022.10.26 |
---|---|
[Docker] ports (docker run -p)와 Dockerfile의 EXPOSE 차이점 (0) | 2022.10.26 |
[Docker] 로컬 환경에서 Django와 MySQL을 docker-compose로 구동 (with. .env파일생성) (1) (0) | 2022.06.02 |
[Docker] Docker 이미지 종류 (with. Python) (0) | 2022.06.01 |
[Docker] GCP 에서 docker로 django 웹 서버 구동 (0) | 2022.04.04 |