Реструктуризация проекта и генератор синтетических датасетов эхолота.
Перенесены backend/frontend/desktop/engine, добавлены вкладки конструктора сцен и генератора датасета с параметрами лучей и длины сетки рельефа, обновлены API и Docker-сборка. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+9
-8
@@ -1,10 +1,10 @@
|
||||
FROM node:20-bookworm-slim AS web-builder
|
||||
|
||||
WORKDIR /web
|
||||
COPY web-vue/package.json ./
|
||||
COPY frontend/web/package.json ./
|
||||
RUN npm install
|
||||
|
||||
COPY web-vue/ ./
|
||||
COPY frontend/web/ ./
|
||||
RUN npm run build
|
||||
|
||||
FROM ubuntu:24.04 AS builder
|
||||
@@ -25,13 +25,13 @@ WORKDIR /src
|
||||
COPY . .
|
||||
|
||||
RUN mkdir -p build && cd build \
|
||||
&& qmake ../DotsToSirface.pro 'DEFINES+=PCL_ENABLED' \
|
||||
&& qmake ../DotsToSurface.pro 'DEFINES+=PCL_ENABLED' \
|
||||
&& make -j"$(nproc)"
|
||||
|
||||
FROM ubuntu:24.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV DOTSTOSIRFACE_BIN=/usr/local/bin/DotsToSirface
|
||||
ENV DOTSTOSURFACE_BIN=/usr/local/bin/DotsToSurface
|
||||
ENV PIPELINE_CONFIG=/app/docker/default_pipeline.json
|
||||
ENV USER_PRESETS_DIR=/app/data/user-presets
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
@@ -58,13 +58,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libgl1 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /src/build/DotsToSirface /usr/local/bin/DotsToSirface
|
||||
COPY --from=web-builder /web/dist /app/web-vue/dist
|
||||
COPY api /app/api
|
||||
COPY --from=builder /src/build/DotsToSurface /usr/local/bin/DotsToSurface
|
||||
COPY --from=web-builder /web/dist /app/frontend/web/dist
|
||||
COPY backend /app/backend
|
||||
COPY docker /app/docker
|
||||
COPY presets /app/presets
|
||||
COPY assets /app/assets
|
||||
|
||||
WORKDIR /app/api
|
||||
WORKDIR /app/backend
|
||||
RUN python3 -m venv /opt/venv \
|
||||
&& /opt/venv/bin/pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
# 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)
|
||||
@@ -1,17 +1,17 @@
|
||||
services:
|
||||
dotstosirface-web:
|
||||
dottosurface-web:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile
|
||||
ports:
|
||||
- "8080:8080"
|
||||
environment:
|
||||
DOTSTOSIRFACE_BIN: /usr/local/bin/DotsToSirface
|
||||
DOTSTOSURFACE_BIN: /usr/local/bin/DotsToSurface
|
||||
PIPELINE_CONFIG: /app/docker/default_pipeline.json
|
||||
USER_PRESETS_DIR: /app/data/user-presets
|
||||
volumes:
|
||||
- ../presets:/app/presets:ro
|
||||
- dotstosirface-user-presets:/app/data/user-presets
|
||||
- dottosurface-user-presets:/app/data/user-presets
|
||||
|
||||
volumes:
|
||||
dotstosirface-user-presets:
|
||||
dottosurface-user-presets:
|
||||
|
||||
Reference in New Issue
Block a user