#2: use gunicorn with nginx as reverse proxy

This commit is contained in:
Lexi / Zoe 2019-10-21 01:19:02 +02:00
parent 754363a92e
commit 3c1fec3f63
Signed by: binaryDiv
GPG Key ID: F8D4956E224DA232
5 changed files with 32 additions and 10 deletions

View File

@ -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

View File

@ -0,0 +1,14 @@
upstream app_django {
server django:8000;
}
server {
listen 80;
location / {
proxy_pass http://app_django;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}

View File

@ -1,11 +1,18 @@
version: "3"
services:
django-server:
django:
build: ../../
ports:
- "8042:8042"
expose:
- 8000
volumes:
- /run/mysqld/:/run/mysqld/
env_file:
- production.secrets.env
nginx:
build: ../nginx
ports:
- 8042:80
depends_on:
- django

View File

@ -1,6 +1,5 @@
FROM alpine:3.7
EXPOSE 8042
WORKDIR /usr/src/app
RUN apk add --no-cache \
@ -19,9 +18,7 @@ RUN apk add --virtual build-deps gcc python3-dev musl-dev && \
COPY . .
# TODO #1: build a real production setup with gunicorn, nginx for static files etc.
#CMD ["gunicorn", "pluralityspace.wsgi:application", \
# "--bind", "0.0.0.0:8042"]
EXPOSE 8000
ENTRYPOINT ["python3", "./manage.py"]
CMD ["runserver", "0.0.0.0:8042"]
CMD ["gunicorn", "pluralityspace.wsgi:application", \
"--bind", "0.0.0.0:8000"]

View File

@ -28,7 +28,7 @@ docker-build:
# Run docker image (without docker-compose)
docker-run:
docker run --rm -ti -p 8042:8042 $(APP_NAME):latest
docker run --rm -ti -p 8000:8000 $(APP_NAME):latest
### Deployment