Files
2022_oknardia/SETUP.md

6.3 KiB
Raw Blame History

🚀 SETUP.md — Первичная настройка Окнардии

Версия: 0.2.0 | Дата: 18.05.2026 | Docker: Поддерживается

Этот документ описывает пошаговую настройку проекта для разработки и деплоя.


🐳 Быстрый старт: Docker Dev Environment

1 Запуск контейнера

cd /Users/e-serg/PRJ/2022-oknardia
docker compose -f docker-compose.local.yml up --build

Сайт будет доступен на http://localhost:8060

2 Основные команды

# Просмотр логов в реальном времени
docker compose -f docker-compose.local.yml logs web -f

# Зайти в контейнер (bash)
docker compose -f docker-compose.local.yml exec web bash

# Перезагрузить контейнер
docker compose -f docker-compose.local.yml restart web

# Остановить контейнер
docker compose -f docker-compose.local.yml down

Особенности:

  • Live reload — при изменении кода автоматически перезагружается
  • Синхронизция файлов — база, медиа, статика синхронизированы с хостом
  • Миграции автоматические — применяются при каждом старте
  • DEBUG режим — подробные ошибки и админка

👁️ Подробнее про Docker разработку → см. раздел "🐳 Docker Development" ниже.


🐳 Docker Development

Структура контейнера

/home/app/                           # PROJECT_ROOT
├── oknardia/                        # основная папка Django
│   ├── manage.py                    # точка входа
│   ├── oknardia/                    # конфиг Django
│   ├── web/                         # приложение
│   └── templates/                   # шаблоны
├── database/                        # SQLite БД (синхронизирована)
├── public/
│   ├── static/                      # исходная статика
│   ├── static_collected/            # собранная статика
│   └── media/                       # загруженные файлы
└── ...

Volume mounts (синхронизация)

volumes:
  - .:/home/app

Это монтирует весь проект (/Users/e-serg/PRJ/2022-oknardia) в /home/app контейнера.

Синхронизация:

  • Изменения на хосте сразу видны в контейнере
  • Разные между хостом и контейнером сохраняются на диск
  • БД и медиа-файлы персистент (не теряются при рестарте контейнера)

Миграции в Docker

# Автоматические при запуске (через docker-compose command):
python manage.py migrate --noinput

# Или вручную внутри контейнера:
docker compose -f docker-compose.local.yml exec web bash
python manage.py makemigrations
python manage.py migrate

# Или непосредственно внутри контейнера:
docker compose -f docker-compose.local.yml exec web python manage.py migrate

Установка новых пакетов

# 1. На хосте добавьте в pyproject.toml:
poetry add some_package

# 2. Пересоберите контейнер:
docker compose -f docker-compose.local.yml up --build

# 3. Зависимости переустановят при старте контейнера

Создание суперюзера (админ)

docker compose -f docker-compose.local.yml exec web python manage.py createsuperuser

Очистка кеша и статики

# Пересоберите статику:
docker compose -f docker-compose.local.yml exec web python manage.py collectstatic --clear --noinput

# Или удалите и пересоздайте:
rm -rf ./public/static_collected/*
docker compose -f docker-compose.local.yml restart web

DEBUG и логирование

# DEBUG=True включен по умолчанию
# Смотрите подробные логи:
docker compose -f docker-compose.local.yml logs web -f --tail=50

# Или с фильтром (только ошибки):
docker compose -f docker-compose.local.yml logs web --tail=100 | grep -i error

Типичные проблемы Docker

"unable to open database file"

# Проверьте что БД существует:
ls -la ./database/oknardia.sqlite3

# Если нет:
cp ./database/oknadria_backup-2026-05-12.sqlite3 ./database/oknardia.sqlite3
docker compose -f docker-compose.local.yml restart web

"404 Not Found" для статики

# Пересоберите статику:
docker compose -f docker-compose.local.yml exec web python manage.py collectstatic --noinput
docker compose -f docker-compose.local.yml restart web

Контейнер падает

# Смотрите полные логи:
docker compose -f docker-compose.local.yml logs web --tail=200

# Часто ошибка в settings.py или import'ах

"Connection refused" при обращении в БД

# Проверьте что контейнер запущен:
docker compose -f docker-compose.local.yml ps

# Перезагрузитесь:
docker compose -f docker-compose.local.yml down && docker compose -f docker-compose.local.yml up

Очистка Docker

# Удалить контейнер и образ:
docker compose -f docker-compose.local.yml down -v

# Удалить весь Docker мусор:
docker system prune -a --volumes

Дополнительные ресурсы