From 46bbb10d2099470f4f83fc8b2f6367a3f7400c74 Mon Sep 17 00:00:00 2001 From: ayxan Date: Sat, 1 Oct 2022 23:10:30 +0400 Subject: [PATCH] added gunicorn --- Dockerfile | 1 - config/nginx/local.conf | 19 +++++++++++++++++++ docker-compose.yml | 16 ++++++++++++++-- requirements.txt | 1 + src/config/settings/production.py | 7 +++++-- src/config/wsgi.py | 11 +---------- 6 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 config/nginx/local.conf diff --git a/Dockerfile b/Dockerfile index 51b2e83..328af12 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ FROM python:3 -ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 WORKDIR /code COPY requirements.txt /code/ diff --git a/config/nginx/local.conf b/config/nginx/local.conf new file mode 100644 index 0000000..1bbe1d0 --- /dev/null +++ b/config/nginx/local.conf @@ -0,0 +1,19 @@ +upstream restgunicorn_server{ + server django:8000; +} + +server{ + listen 8080; + server_name localhost; + + location / { + proxy_pass http://restgunicorn_server; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_redirect off; + } + + location /django_static/ { + alias /src/django_static/; + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b49e283..70cc2cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,16 +5,28 @@ services: image: postgres volumes: - dbdata:/var/lib/postgresql/data + - static_volume:/src/django_static env_file: - config/db/databasepostgresql_env django: build: . - command: python3 src/manage.py runserver 0.0.0.0:8000 --settings=config.settings.production + command: gunicorn src.config.wsgi:application --bind 0.0.0.0:8000 ports: - "8000:8000" depends_on: - db + nginx: + image: nginx + ports: + - "1337:8080" + volumes: + - ./config/nginx/local.conf:/etc/nginx/conf.d/default.conf:ro + - static_volume:/src/django_static + depends_on: + - django + volumes: - dbdata: \ No newline at end of file + dbdata: + static_volume: \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index db7e87c..a0de788 100644 --- a/requirements.txt +++ b/requirements.txt @@ -31,3 +31,4 @@ urllib3==1.26.12 vine==5.0.0 wcwidth==0.2.5 wrapt==1.14.1 +gunicorn \ No newline at end of file diff --git a/src/config/settings/production.py b/src/config/settings/production.py index 458f264..94cd408 100644 --- a/src/config/settings/production.py +++ b/src/config/settings/production.py @@ -16,7 +16,10 @@ DATABASES = { } } -STATIC_URL = '/static/' +STATIC_URL = '/django_static/' +STATIC_ROOT = [ + BASE_DIR / 'django_static' +] STATICFILES_DIRS = [ - BASE_DIR / 'static' + BASE_DIR / 'django_static/static' ] \ No newline at end of file diff --git a/src/config/wsgi.py b/src/config/wsgi.py index 3d2dc45..e2f82e6 100644 --- a/src/config/wsgi.py +++ b/src/config/wsgi.py @@ -1,16 +1,7 @@ -""" -WSGI config for config project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/ -""" - import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.production') application = get_wsgi_application()