Nginx не может обслужить Django url через Docker-контейнер Gunicorn
Я пытаюсь развернуть мое приложение Django Docker с Nginx и Gunicorn.Я следовал этому учебнику.Мне также удалось запустить мое приложение Django на :8000 и Nginx на :80, я могу достичь и :80 и :8000, но когда я пытаюсь подключиться, например, к :80/app я просто получаю 404, в то же время я могу подключиться к :8000/app.
Мой основной файл Docker выглядит так:
FROM python:3.10.6-alpine
RUN pip install --upgrade pip
COPY ./requirments.txt .
RUN pip3 install -r requirments.txt
COPY ./proto /app
WORKDIR /app
COPY ./entrypoint.sh /
ENTRYPOINT [ "sh", "/entrypoint.sh" ]
это запуск моего файла entrypoint.sh:
python manage.py migrate --no-input
python manage.py collectstatic --no-input
gunicorn proto.wsgi:application --bind 0.0.0.0:8000`
и мой compose.yml выглядит так:
version: '3.7'
services:
django_proto:
volumes:
- static:/static
env_file:
- .env
build:
context: .
ports:
- "8000:8000"
nginx:
build: ./nginx
volumes:
- static:/static
ports:
- "80:80"
depends_on:
- django_proto
volumes:
static:
и мой default.conf:
upstream django {
server django_proto:8000;
}
server {
listen 80;
location /static/ {
alias /app/static;
}
location / {
proxy_set_header Host $http_host;
proxy_pass http://django;
proxy_redirect off;
}
}
и Docker-файл Nginx:
FROM nginx:1.19.0-alpine
COPY ./default.conf /etc/nginx/conf.d/default.conf
Я пробовал разные конструкции папок, потому что думал, что просто пытаюсь подключиться к неправильному пути к папке, я также пробовал разные порты и даже закрыл свой брандмауэр на случай, если он блокирует соединение.