68 lines
3.6 KiB
YAML
68 lines
3.6 KiB
YAML
# ==============================================================================
|
||
# 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
|
||
# - Миграции применяются автоматически при каждом старте
|
||
# - Пересоздаём пре-рендер шаблоны и sitemap'ы для актуальности
|
||
command: >
|
||
sh -c "python manage.py migrate --noinput &&
|
||
python manage.py collectstatic --noinput &&
|
||
python manage.py generate_sitemaps &&
|
||
python manage.py regenerate_seria_prerender &&
|
||
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: ...
|
||
|