From e4e156458c2cf4356b42fb003eb5448387328c1c Mon Sep 17 00:00:00 2001 From: erjemin Date: Fri, 20 Feb 2026 01:49:43 +0300 Subject: [PATCH] =?UTF-8?q?add:=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20media-=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D0=B0=D0=BB=D0=BE=D0=B3=D0=B0=20=D0=B8=20.gitignore=20=D1=87?= =?UTF-8?q?=D1=82=D0=BE=D0=B1=20=D0=B2=20=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=83=D1=88=D0=B8=D0=BB=D0=BE=D1=81=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ++++++ public/media/README.md | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 public/media/README.md diff --git a/.gitignore b/.gitignore index beee253..b6b6ad4 100644 --- a/.gitignore +++ b/.gitignore @@ -255,3 +255,9 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. .idea/ +# Static / Media +# public/static/ # Исходники статики нужны collectstatic +# public/media # Медиа файлы НЕ нужны в образе, они монтируются как volume +# Мы игнорируем содержимое папки public/media, но оставляем саму папку и README.md +public/media/* +!public/media/README.md diff --git a/public/media/README.md b/public/media/README.md new file mode 100644 index 0000000..53186cf --- /dev/null +++ b/public/media/README.md @@ -0,0 +1,27 @@ +# Папка для медиа-файлов (Media) + +Эта директория предназначена для хранения загружаемого контента (изображений, документов), который генерируется или загружается пользователями в процессе работы Django-приложения. + +## Как это работает с Docker + +В `docker-compose.prod.yml` настроено монтирование этой папки как Docker Volume: + +```yaml +volumes: + - ./media:/app/public/media +``` + +* **На хосте (сервере):** Файлы физически хранятся в папке `media` рядом с `docker-compose.yml`. +* **В контейнере:** Django видит их по пути `/app/public/media` (настройка `MEDIA_ROOT`). +* **Nginx:** Внешний Nginx настроен на прямую отдачу файлов из этой папки хоста, минуя Django. + +## Содержимое репозитория + +В репозитории эта папка содержит только этот `README.md`. +При развертывании контейнера через docker-compose (с volume `./media:/app/public/media`), содержимое этой папки на хосте становится доступным приложению. + +**Автоматически создаваемые файлы:** +При старте контейнера в этой папке автоматически создается каталог `errors/`, куда копируются статические HTML-файлы для отображения ошибок (404.html, 500.html), чтобы внешний Nginx мог их отдавать, даже если Django, gunicorn или весь контейнер недоступен. + +> **Важно:** Убедитесь, что у пользователя, под которым работает Nginx (обычно `www-data`), есть права на чтение этой директории и файлов в ней. +