Files
2021-cadpoint-ru/docker-compose.local.yml

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