From dbabeab470efec4a186c983a963b2d9f892e41fc Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 17 May 2020 20:20:51 -0700 Subject: [PATCH] Nginx config Fixes #152 (hopefully???) Fixes #130 Fixes #125 --- Dockerfile | 3 ++- docker-compose.yml | 26 +++++++++++++++++--------- fedireads/settings.py | 4 +++- nginx/Dockerfile | 4 ++++ nginx/nginx.conf | 22 ++++++++++++++++++++++ 5 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 nginx/Dockerfile create mode 100644 nginx/nginx.conf diff --git a/Dockerfile b/Dockerfile index f6dbb740..705427db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /app +RUN mkdir /app/static +RUN mkdir /app/images WORKDIR /app COPY requirements.txt /app/ RUN pip install -r requirements.txt COPY ./fedireads /app COPY ./fr_celery /app -EXPOSE 5555 diff --git a/docker-compose.yml b/docker-compose.yml index a8adde91..0a331c93 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,17 @@ version: '3' services: + nginx: + build: ./nginx + ports: + - 1333:80 + depends_on: + - web + networks: + - main + volumes: + - static_volume:/app/static + - media_volume:/app/images db: image: postgres env_file: .env @@ -13,13 +24,15 @@ services: command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/app - ports: - - "8000:8000" + - static_volume:/app/static + - media_volume:/app/images depends_on: - db - celery_worker networks: - main + expose: + - 8000 redis: image: redis env_file: .env @@ -40,14 +53,9 @@ services: - db - redis restart: on-failure - flower: - image: mher/flower - command: ["flower", "--broker=redis://redis:6379/0", "--port=5555"] - env_file: .env - ports: - - "5555:5555" - restart: on-failure volumes: pgdata: + static_volume: + media_volume: networks: main: diff --git a/fedireads/settings.py b/fedireads/settings.py index ff93ad14..1e0b7e30 100644 --- a/fedireads/settings.py +++ b/fedireads/settings.py @@ -138,6 +138,8 @@ USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.0/howto/static-files/ +PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) STATIC_URL = '/static/' +STATIC_ROOT = os.path.join(BASE_DIR, env('STATIC_ROOT', 'static')) MEDIA_URL = '/images/' -MEDIA_ROOT = os.path.join(BASE_DIR, env('MEDIA_ROOT', 'images/')) +MEDIA_ROOT = os.path.join(BASE_DIR, env('MEDIA_ROOT', 'images')) diff --git a/nginx/Dockerfile b/nginx/Dockerfile new file mode 100644 index 00000000..66074cf6 --- /dev/null +++ b/nginx/Dockerfile @@ -0,0 +1,4 @@ +FROM nginx:1.17.4-alpine + +RUN rm /etc/nginx/conf.d/default.conf +COPY nginx.conf /etc/nginx/conf.d diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 00000000..d3898287 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,22 @@ +upstream web { + server web:8000; +} + +server { + listen 80; + + location / { + proxy_pass http://web; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_redirect off; + } + + location /images/ { + alias /app/images/; + } + + location /static/ { + alias /app/static/; + } +}