🐳 DOCKERIZATION (ОБЯЗАТЕЛЬНО) 🎯 Цель Весь проект должен запускаться одной командой через Docker, без ручной установки зависимостей на хост-машине. 📦 Требования к Docker 1. Общие требования Использовать Docker + Docker Compose Проект должен запускаться командой: docker-compose up --build После запуска: Backend доступен на http://localhost:8000 Frontend доступен на http://localhost:5173 (или 3000) 🧩 Архитектура контейнеров 🔹 Контейнер 1 — Backend Содержит: Python 3.11+ FastAPI FFmpeg (обязательно установлен внутри контейнера) MoviePy Все Python-зависимости Требования: FFmpeg должен быть доступен через CLI (ffmpeg -version) Видео и временные файлы хранятся в volume Поддержка долгих задач (video rendering) 🔹 Контейнер 2 — Frontend Содержит: Node.js 18+ Vue 3 Vite Требования: Горячая перезагрузка (dev mode) API-запросы проксируются на backend 📁 Структура проекта (обязательная) project-root/ │ ├── backend/ │ ├── app/ │ ├── requirements.txt │ ├── Dockerfile │ ├── frontend/ │ ├── src/ │ ├── package.json │ ├── Dockerfile │ ├── media/ │ ├── audio/ │ ├── backgrounds/ │ ├── posters/ │ ├── output/ │ └── videos/ │ ├── docker-compose.yml └── README.md 🐳 Backend Dockerfile — требования Базовый образ: python:3.11-slim Установка FFmpeg через apt Установка Python-зависимостей Запуск FastAPI через uvicorn 🐳 Frontend Dockerfile — требования Базовый образ: node:18 Установка зависимостей Запуск Vite dev server 🔁 Volumes (обязательно) volumes: - ./media:/app/media - ./output:/app/output Чтобы: не терять видео при перезапуске удобно подменять контент 🧪 Проверка Docker-сборки (Acceptance) После docker-compose up: Frontend открывается в браузере Backend отвечает на /health Генерация видео работает FFmpeg корректно вызывается MP4 сохраняется в /output/videos ⚠️ ВАЖНО для AI При генерации кода: обязательно показать Dockerfile для backend обязательно показать Dockerfile для frontend обязательно показать docker-compose.yml код должен работать без ручной донастройки 📌 Итог AI должен выдать: Backend код Frontend (Vue) код FFmpeg пайплайн Dockerfile (2 шт.) docker-compose.yml Инструкцию запуска