From 73d852860e43717deca683436881814a6e17c2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Sun, 19 Apr 2020 22:33:38 +0200 Subject: [PATCH] Deployment with nginx for media files --- .dockerignore | 2 ++ .gitignore | 4 ++-- .gitlab-ci.yml | 3 +++ Dockerfile | 4 +++- Dockerfile.nginx | 3 +++ majak/settings/base.py | 4 ++-- nginx.conf | 22 ++++++++++++++++++++++ 7 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 Dockerfile.nginx create mode 100644 nginx.conf diff --git a/.dockerignore b/.dockerignore index b570aefc..ffd639d0 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,5 @@ .git .venv .envrc +static_files/ +media_files/ diff --git a/.gitignore b/.gitignore index 3e8d8fb3..d72a1d6d 100644 --- a/.gitignore +++ b/.gitignore @@ -143,5 +143,5 @@ cython_debug/ # direnv .envrc -media/ -static/ +media_files/ +static_files/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1333a50f..f1d1b904 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,7 @@ image: docker:19.03.1 variables: DOCKER_TLS_CERTDIR: "/certs" IMAGE_TAG_APP: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + IMAGE_TAG_NGINX: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-nginx services: - docker:19.03.1-dind @@ -14,4 +15,6 @@ build: stage: build script: - docker build -t $IMAGE_TAG_APP . + - docker build -t $IMAGE_TAG_NGINX . -f Dockerfile.nginx - docker push $IMAGE_TAG_APP + - docker push $IMAGE_TAG_NGINX diff --git a/Dockerfile b/Dockerfile index 3f80ae5d..d6f1093d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,9 @@ RUN useradd app RUN chown -R app /app USER app -ENV DJANGO_SETTINGS_MODULE "majak.settings.production" +# TODO HACK! +# ENV DJANGO_SETTINGS_MODULE "majak.settings.production" +ENV DJANGO_SETTINGS_MODULE "majak.settings.dev" EXPOSE 8000 diff --git a/Dockerfile.nginx b/Dockerfile.nginx new file mode 100644 index 00000000..88d4d28e --- /dev/null +++ b/Dockerfile.nginx @@ -0,0 +1,3 @@ +FROM nginx +EXPOSE 8080 +ADD nginx.conf /etc/nginx/conf.d/majak.conf diff --git a/majak/settings/base.py b/majak/settings/base.py index 9695d2f6..4c216c94 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -137,10 +137,10 @@ STATICFILES_DIRS = [ # See https://docs.djangoproject.com/en/3.0/ref/contrib/staticfiles/#manifeststaticfilesstorage STATICFILES_STORAGE = "django.contrib.staticfiles.storage.ManifestStaticFilesStorage" -STATIC_ROOT = os.path.join(BASE_DIR, "static") +STATIC_ROOT = os.path.join(BASE_DIR, "static_files") STATIC_URL = "/static/" -MEDIA_ROOT = os.path.join(BASE_DIR, "media") +MEDIA_ROOT = os.path.join(BASE_DIR, "media_files") MEDIA_URL = "/media/" diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 00000000..ee2e0763 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,22 @@ +upstream majak { + ip_hash; + server app:8000; +} + +server { + server_name majak; + listen 8080; + + client_max_body_size 10M; + + location /media/ { + alias /var/opt/majak/media_files/; + } + + location / { + proxy_pass http://majak/; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } +} -- GitLab