Files
2022_oknardia/docker-compose.local.yml

68 lines
3.6 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ==============================================================================
# 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: ...