Как обслуживать статические файлы из Django с помощью docker-compose и Nginx?

Я пытаюсь обслуживать статические файлы из Django с помощью docker-compose и Nginx. У меня есть файл compose, в котором я устанавливаю три сервиса, а также тома для базы данных, статических файлов и загруженных файлов:

version: '3'

services:

  lims:
    container_name: lims
    build: ./lims
    env_file:
      - ./lims/.env.django.prod
    ports:
      - '8000:8000'
    depends_on:
      - db
    volumes:
      - static_volume:/lims/staticfiles
      - upload_volume:/lims/upload
  
  db:
    image: postgres:13.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./lims/.env.db.prod

  nginx:
    container_name: nginx
    restart: always
    build: ./nginx
    ports:
      - "80:80"
    volumes:
      - static_volume:/lims/staticfiles
      - upload_volume:/lims/upload
    depends_on:
      - lims

volumes:
  postgres_data:
  static_volume:
  upload_volume:

Теперь, если я запускаю это с помощью Django's DEBUG=1 все работает нормально. Однако как только я выключаю режим отладки, все статические файлы исчезают.

В настройках Django я указал расположение статических и загруженных файлов следующим образом:

MEDIA_URL = '/lims/upload/'
MEDIA_ROOT = BASE_DIR / 'upload'

STATIC_URL = "/lims/staticfiles/"
STATIC_ROOT = BASE_DIR / "staticfiles"

Я также попытался добавить путь /lims/staticfiles/ к Nginx следующим образом:

location /lims/staticfiles/ {
     alias /var/lib/docker/volumes/;
}

поскольку я полагаю, что тома должны быть расположены там. Однако это привело к тому, что статические файлы даже не отображаются в режиме отладки.

Как правильно обслуживать статические файлы и загруженный пользователем контент здесь?

Вернуться на верх