#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" version: "3"
services: services:
django-server: django:
build: ../../ build: ../../
ports: expose:
- "8042:8042" - 8000
volumes: volumes:
- /run/mysqld/:/run/mysqld/ - /run/mysqld/:/run/mysqld/
env_file: env_file:
- production.secrets.env - production.secrets.env
nginx:
build: ../nginx
ports:
- 8042:80
depends_on:
- django

View File

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

View File

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