Статические файлы не обслуживаются с помощью nginx + gunicorn + doker + django

Я делаю docker-образ приложения django с nginx и gunicorn. Конфигурационные файлы приведены ниже. Этот сервер с легкостью обслуживает статические файлы при разработке, но не может сделать это в контейнере docker. Какие изменения мне нужно сделать, чтобы обслуживать файлы в docker?

docker-compose.yml

version: '3.7'
services:
    segmentation_gunicorn:
        volumes:
            - static:/static
        env_file:
            - .env
        build:
            context: .
        ports:
            - "8000:8000"
    nginx:
        build: ./nginx
        volumes:
            - static:/static
        ports:
            - "80:80"
        depends_on:
            - segmentation_gunicorn
            
volumes:
    static:
 

requirements.txt

FROM python:3

RUN pip install --upgrade pip

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

COPY ./segmentation_site /app

WORKDIR /app

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

requirements.txt

DJANGO==4.0.4
gunicorn==20.0.4
tensorflow
django-resized
pillow==9.1.0
django-crispy-forms==1.14.0

entrypoint.sh

python manage.py migrate --no-input
python manage.py collectstatic --no-input
gunicorn --bind 0.0.0.0:8000 segmentation_site.wsgi:application

Dockerfile для nginx

FROM nginx:1.19.0-alpine

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

default.conf

upstream django {
    server segmentation_gunicorn:8000;
}

server {
    listen 80;

    client_max_body_size 100M;

    location / {
        proxy_pass http://django;
    }
    
    location /static/ {
        alias /static/;
    }
}

settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
Вернуться на верх