# Docker **Infra** — сборка и запуск Web-стека (Frontend + Backend + Engine). ## Быстрый старт Запуск **только в контейнере** (на хосте ставить Python/npm для работы приложения не нужно). ```bash cd docker docker compose up --build # → http://localhost:8080 ``` Или из корня репозитория: ```bash ./scripts/run-docker.sh # с логами в терминале ./scripts/run-docker.sh -d # в фоне ``` Если порт **8080** занят, в `docker-compose.yml` измените маппинг, например `"8081:8080"`. Перед первым запуском должен быть запущен Docker Engine (`docker ps` без ошибки). ## Multi-stage сборка | Stage | Результат | |-------|-----------| | `web-builder` | `frontend/web/dist` | | `builder` | `DotsToSurface` binary | | runtime | API + binary + dist | ## Runtime-контейнер | Путь | Содержимое | |------|------------| | `/usr/local/bin/DotsToSurface` | C++ Engine (CLI) | | `/app/frontend/web/dist` | Vue frontend | | `/app/backend` | FastAPI | **CMD:** `uvicorn main:app --host 0.0.0.0 --port 8080` (WORKDIR `/app/backend`) См. также: [../ARCHITECTURE.md](../ARCHITECTURE.md)