본문 바로가기

DevOps/Docker

[Docker] 로컬에서 docker-compose를 이용한 Gunicorn 적용 (2)

앞서 적용한 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로 실행시킨다.