diff --git a/Dockerfile b/Dockerfile index e97a087..aad1422 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,3 +15,6 @@ RUN pip install -r requirements.txt # Copy rest of project into workspace COPY . /konova/ +# Move static files in designated folder +RUN python manage.py collectstatic --noinput + diff --git a/docker-compose.yml b/docker-compose.yml index 5bddc63..9569bd7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,7 @@ version: '3.3' services: redis: image: redis + container_name: "konova-redis-cache" volumes: - /redis/data:/bitnami/redis/data environment: @@ -13,11 +14,12 @@ services: - postgis:db build: . container_name: "konova-docker" - command: python manage.py runserver 0.0.0.0:8000 + command: gunicorn konova.wsgi:application --bind 0.0.0.0:8000 volumes: - .:/konova - ports: - - "8001:8000" + - static_file_volume:/konova/static # Point to the volume for static files. Shared with nginx service + expose: + - 8000 depends_on: - redis environment: @@ -47,9 +49,22 @@ services: - POSTGRES_HOST=db - REDIS_HOST=redis + nginx: + build: ./nginx + container_name: "konova-nginx-server" + ports: + - "1337:80" + depends_on: + - konova + volumes: + - static_file_volume:/konova/static # Point to the volume for static files. Shared with konova service + # Instead of an own, new network, we need to connect to the existing one, which is provided by the postgis container # NOTE: THIS NETWORK MUST EXIST networks: default: external: - name: postgis_nat_it_backend \ No newline at end of file + name: postgis_nat_it_backend + +volumes: + static_file_volume: \ No newline at end of file diff --git a/konova/sub_settings/django_settings.py b/konova/sub_settings/django_settings.py index 9256148..1bf8dc5 100644 --- a/konova/sub_settings/django_settings.py +++ b/konova/sub_settings/django_settings.py @@ -30,7 +30,7 @@ BASE_DIR = os.path.dirname( SECRET_KEY = '5=9-)2)h$u9=!zrhia9=lj-2#cpcb8=#$7y+)l$5tto$3q(n_+' # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = False ALLOWED_HOSTS = [ "127.0.0.1", diff --git a/nginx/Dockerfile b/nginx/Dockerfile new file mode 100644 index 0000000..4c49d2e --- /dev/null +++ b/nginx/Dockerfile @@ -0,0 +1,4 @@ +FROM nginx:alpine + +RUN rm /etc/nginx/conf.d/default.conf +COPY nginx.conf /etc/nginx/conf.d \ No newline at end of file diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..26b326c --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,20 @@ +upstream konova { + server konova:8000; +} + +server { + + listen 80; + + location / { + proxy_pass http://konova; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_redirect off; + } + + location /static/ { + alias /konova/static/; + } + +} diff --git a/requirements.txt b/requirements.txt index 763913c..20e0bff 100644 --- a/requirements.txt +++ b/requirements.txt @@ -48,3 +48,4 @@ webservices==0.7 wrapt==1.13.3 xmltodict==0.12.0 zipp==3.4.1 +gunicorn==20.1.0 \ No newline at end of file