Почему Nginx обслуживает мое приложение django на порту 8000 вместо 80?

Я создал приложение, используя django https://github.com/pyalz/video_app. Теперь я запускаю это приложение, используя django compose build django compose up .

Когда я открываю http://0.0.0.0:8000, он приходит со статическими файлами. Когда я открываю http://0.0.0.0:80, он не показывает мне статические файлы

**Docker compose **

version: '3.7'

services:
  django_gunicorn:
    volumes:
      - static:/static
    env_file:
      - .env
    build:
      context: .
    ports:
      - "8000:8000"
  nginx:
    build: ./nginx
    volumes:
      - static:/static
    ports:
      - "80:80"
    depends_on:
      - django_gunicorn

volumes:
  static:

Файл докера

FROM python:3.10.0-alpine

RUN pip install --upgrade pip

COPY ./requirements.txt .
RUN pip install -r requirements.txt

COPY ./video_app /app

WORKDIR /app

COPY ./entrypoint.sh /
ENTRYPOINT ["sh", "/entrypoint.sh"]

Entry.sh

#!/bin/sh
python manage.py migrate --no-input
python manage.py collectstatic --no-input

DJANGO_SUPERUSER_PASSWORD=$SUPER_USER_PASSWORD python manage.py createsuperuser --username $SUPER_USER_NAME --email $SUPER_USER_EMAIL --noinput

gunicorn video_app.wsgi:application --bind 0.0.0.0:8000

NGINX Docker файл

FROM nginx:1.19.0-alpine

COPY ./default.conf /etc/nginx/conf.d/default.conf

Default.conf

upstream django {
    server django_gunicorn:8000;
}

server {
    listen 80;

    location / {
        proxy_pass http://django;
    }

    location /static/ {
        alias /static/;
    }
}

введите описание изображения здесь введите описание изображения здесь

Помогите, пожалуйста, решить этот вопрос

В вашем файле default.conf указан только адрес докера Django, но не указан порт, поэтому по умолчанию используется порт 80. Измените его на следующий:

server {
    listen 80;

    location / {
        proxy_pass http://django:8000;
    }

    location /static/ {
        alias /static/;
    }
}
Вернуться на верх