Django Static Assets Not Found (404) в контейнере Docker

Недавно я настроил свой проект Django с помощью Docker. Когда я запускаю свой контейнер, мое приложение Django работает, но отсутствуют (404) все статические активы:

GET http://localhost:8000/static/theme/css/sb-admin-2.min.css net::ERR_ABORTED 404 (Not Found)

Активы загружаются без проблем вне контейнера Docker. Мой проект Django настроен на использование WhiteNoise. Я знаю, что многие говорят, что не стоит беспокоиться и просто перенести статические активы на S3. Я прибегну к этому, если потребуется, но я бы очень хотел попробовать заставить это работать для моей локальной конфигурации среды.

Вот соответствующая конфигурация:

структура проекта:

- cs-webapp
  - cs
     - settings.py
     - urls.py
     - wsgi.py
     - staticfiles/
     ...
  - webapp
     - migrations/
     - models/
     - views/
     ...
  Dockerfile
  docker-compose.yml
  manage.py
  ...

settings.py

BASE_DIR = Path(__file__).resolve().parent.parent
print("!!!!!! BASE_DIR IS " + str(BASE_DIR)) # this prints '/app'

STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
#STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

docker-compose.yml

version: '3'

services:
  app:
    build:
      context: .
    ports:
      - "8000:8000"
    volumes:
      - /app
    command: >      
      sh -c "sleep 10; python manage.py collectstatic --noinput &&
            python manage.py migrate &&
            python manage.py runserver 0.0.0.0:8000"
    env_file:
      - .env
      - db.env
    depends_on:
      - db

  rabbitmq:
    ...

  celery-worker:
    ...

  celery-beat:
    ...

  db:
    ...

Dockerfile

FROM python:3.7-alpine

ENV PYTHONBUFFERED=1

COPY ./requirements.txt /requirements.txt

RUN apk add --update --no-cache git libffi-dev

RUN apk add --update --no-cache postgresql-client jpeg-dev

RUN apk add --update --no-cache --virtual .tmp-build-deps \ 
    gcc libc-dev linux-headers postgresql-dev musl-dev zlib zlib-dev
RUN pip install -r /requirements.txt
RUN apk del .tmp-build-deps

RUN mkdir /app
COPY . /app
WORKDIR /app
Вернуться на верх