- Dockerfile на python:3.11-slim с libgomp1, непривилегированным пользователем и healthcheck; - docker-entrypoint.sh с поддержкой шорткатов test/benchmark/evaluate/pipeline; - docker-compose.yml с профилями тестирования, оценки и бенчмарка; - docs/DOCKER.md: руководство по сборке, запуску и монтированию томов; - requirements.txt: добавлен matplotlib для построения графиков.
81 lines
2.6 KiB
Markdown
81 lines
2.6 KiB
Markdown
# Руководство по запуску FlyGuard в Docker
|
||
|
||
## 1. Быстрая сборка образа
|
||
|
||
Сборка легковесного образа на базе `python:3.11-slim-bookworm` (включает OpenMP/BLAS и зависимости):
|
||
|
||
```bash
|
||
docker build -t flyguard:latest .
|
||
```
|
||
|
||
---
|
||
|
||
## 2. Запуск тестов
|
||
|
||
Контейнер по умолчанию выполняет самодиагностику и тестовый набор:
|
||
|
||
```bash
|
||
# Прямой запуск через Docker
|
||
docker run --rm flyguard:latest
|
||
|
||
# Либо через docker compose
|
||
docker compose run --rm test
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Запуск конвейера и бенчмарка с данными лидара
|
||
|
||
Датасеты монтируются в контейнер в каталог `/data`:
|
||
|
||
```bash
|
||
# Оценка ложных тревог по всем бэгам
|
||
docker run --rm \
|
||
-v /path/to/lidar/data:/data:ro \
|
||
-v $(pwd)/artifacts:/app/artifacts \
|
||
--shm-size=2g \
|
||
flyguard:latest evaluate --mbon-dir artifacts/mbon_folds
|
||
|
||
# Запуск полигона дальности с новыми аугментациями
|
||
docker run --rm \
|
||
-v /path/to/lidar/data:/data:ro \
|
||
-v $(pwd)/artifacts:/app/artifacts \
|
||
--shm-size=2g \
|
||
flyguard:latest benchmark --memory artifacts/mushroom_body.npz --augment
|
||
|
||
# Прогон по конкретному бэгу с выводом телеметрии в реальном времени
|
||
docker run --rm \
|
||
-v /path/to/lidar/data:/data:ro \
|
||
flyguard:latest pipeline --bag /data/for_hackathon/doubleT_obstacle --verbose
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Интерактивная отладка
|
||
|
||
Войти внутрь контейнера с настроенным окружением:
|
||
|
||
```bash
|
||
docker compose run --rm shell
|
||
# или
|
||
docker run -it --rm \
|
||
-v /path/to/lidar/data:/data:ro \
|
||
-v $(pwd)/artifacts:/app/artifacts \
|
||
flyguard:latest bash
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Доступные команды шорткатов entrypoint
|
||
|
||
Точка входа `docker-entrypoint.sh` поддерживает удобные псевдонимы:
|
||
|
||
* `test` — запускает автономный набор юнит-тестов (`tests/run_tests.py`)
|
||
* `pytest` — запускает `pytest tests`
|
||
* `pipeline` — вызывает `tools/run_pipeline.py`
|
||
* `benchmark` — вызывает `tools/make_benchmark.py`
|
||
* `evaluate` — вызывает `tools/evaluate.py`
|
||
* `train-mbon` — вызывает `tools/train_mbon.py`
|
||
* `train-track` — вызывает `tools/train_track.py`
|
||
* `plot` — вызывает `tools/plot_benchmark.py`
|
||
* `bash` / `sh` — открывает командную оболочку
|