mod: Все для контейнера в dev-режиме.

This commit is contained in:
2026-05-18 15:17:35 +03:00
parent 50b5ee4bdf
commit 71059bdae6
9 changed files with 400 additions and 279 deletions

64
docker-compose.local.yml Normal file
View File

@@ -0,0 +1,64 @@
# ==============================================================================
# Docker Compose для РАЗРАБОТКИ (Local Development)
# Этот файл содержит настройки для локальной работы (live reload, debug).
# Запуск: docker compose -f docker-compose.local up --build
# ==============================================================================
services:
web:
# Имя контейнера для удобства
container_name: oknardia-backend-dev
# Сборка из текущей директории
build: .
# Пробрасывание портов (чтобы сайт был доступен на localhost:8060)
# Занятые порты можно посмотреть через `sudo ss -tulpn`
ports:
- "8060:8000"
# 1. КОМАНДА ЗАПУСКА (Dev режим)
# Используем Django runserver для разработки:
# - Автоматически отдаёт статику без WhiteNoise
# - Имеет встроенный auto-reload при изменении кода
# - Безопаснее и проще для dev, чем Gunicorn
# - Миграции применяются автоматически при каждом старте
command: >
sh -c "python manage.py migrate --noinput &&
python manage.py collectstatic --noinput &&
python manage.py runserver 0.0.0.0:8000"
# 2. МОНТИРОВАНИЕ КОДА (Live Reload)
# Подключаем весь проект целиком в /home/app для правильного вычисления путей PROJECT_ROOT.
# При изменении кода runserver автоматически перезагружается (auto-reload).
#
# Структура монтирования:
# Host: /Users/e-serg/PRJ/2022-oknardia (.)
# Container: /home/app
# ├── oknardia/ <- исходный код (manage.py находится здесь)
# ├── database/ <- SQLite БД для синхронизации между хостом и контейнером
# ├── public/ <- статика и медиа-файлы
# └── templates/ <- Django шаблоны
volumes:
- .:/home/app
# 3. ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
env_file:
# файл с переменными окружения для разработки
- .env
environment:
# На всякий случай принудительно включаем DEBUG и DEBUG-уровень логов (вдруг в .env что-то не так)
# Эти настройки более приоритетные, чем в .env (если дублируются).
- DEBUG=True
- DJANGO_LOG_LEVEL=DEBUG
# В dev нам не нужно ограничивать буферизацию так строго, но не помешает.
# 4. РЕСУРСЫ (Без лимитов для разработки)
# Удаляем секцию ограничений, чтобы локально использовать все доступные ресурсы хоста.
# deploy:
# resources:
# limits:
# cpus: ...
# memory: ...
# mem_limit: ...