Files
2020-dq/docker-compose.yml

62 lines
3.3 KiB
YAML
Raw 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 up --build
# ==============================================================================
services:
web:
# Имя контейнера для удобства
container_name: dq-backend-dev
# Сборка из текущей директории
build: .
# Проброс портов (чтобы сайт был доступен на localhost:8010)
ports:
- "8010:8000"
# 1. КОМАНДА ЗАПУСКА (Dev режим)
# Используем --reload для авто-перезагрузки при изменении кода.
# Уменьшаем число воркеров до 2 (экономия ресурсов dev-машины).
# Убираем collectstatic (в dev Django сам может отдавать статику или она нам не так важна сжатой)
# Но миграции оставляем, чтобы база была актуальной.
command: >
sh -c "python manage.py migrate --noinput &&
gunicorn --workers 2 --bind 0.0.0.0:8000 --reload dicquo.wsgi:application"
# 2. МОНТИРОВАНИЕ КОДА (Live Reload)
# Подключаем локальные папки внутрь контейнера, чтобы Gunicorn видел изменения без пересборки образа.
volumes:
# Монтируем основной код проекта.
# Так как web, templates и manage.py лежат внутри dicquo/, одного этого маунта достаточно.
- ./dicquo:/app/dicquo
# Монтируем всю папку public (Static + Media)
# Это нужно, чтобы:
# 1. Изменения в CSS/JS (public/static) сразу были видны (Live Reload).
# 2. Загруженные картинки (public/media) сохранялись на диске.
- ./public:/app/public
# Монтируем базу данных (чтобы данные сохранялись при пересоздании контейнера)
# Используем ту же папку database, что и на проде, для единообразия.
# ВАЖНО: Django ищет базу в BASE_DIR.parent / 'database/db.sqlite3'
# В контейнере BASE_DIR=/app/dicquo, значит путь к базе: /app/database/db.sqlite3
- ./database:/app/database
# 3. ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
environment:
- DEBUG=True
- DJANGO_LOG_LEVEL=DEBUG
# В dev нам не нужно ограничивать буферизацию так строго, но не помешает.
# 4. РЕСУРСЫ (Без лимитов)
# Удаляем секцию ограничений, чтобы локально использовать все доступные ресурсы хоста.
# deploy:
# resources:
# limits:
# cpus: ...
# memory: ...
# mem_limit: ...