Статические файлы не обслуживаются с помощью 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")