diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..04659ff --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM python:3.11-slim + +RUN apt update && apt install -y nginx + +RUN pip install poetry + +WORKDIR /OCLettings2 + +COPY pyproject.toml poetry.lock ./ + +COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf + +RUN poetry config virtualenvs.create false && \ + poetry install --no-interaction --no-ansi --no-root && \ + poetry add gunicorn + +COPY . . + +COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf + +RUN rm -rf /var/www/html* && \ + mkdir -p /run/nginx + +RUN poetry run python manage.py collectstatic --noinput + +EXPOSE 80 + +CMD service nginx start && \ + poetry run gunicorn --bind 127.0.0.1:8000 --env DJANGO_SETTINGS_MODULE=oc_lettings_site.settings oc_lettings_site.wsgi +#CMD ["poetry", "run", "gunicorn", "--bind", "0.0.0.0:8080", "--env", "DJANGO_SETTINGS_MODULE=oc_lettings_site.settings", "oc_lettings_site.wsgi"] + + diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..3d29d95 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,22 @@ +upstream django { + server 127.0.0.1:8000; +} + +server { + listen 80; + server_name localhost; + + location /static/ { + alias /OCLettings2/staticfiles/; + expires 30d; + } + + location / { + proxy_pass http://django; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +