Brainrot_Muxa/docs/DOCKER.md
Zhirik1337 a06a2f45bb контейнеризация Docker и docker-compose для запуска и тестов
- Dockerfile на python:3.11-slim с libgomp1, непривилегированным пользователем и healthcheck;
- docker-entrypoint.sh с поддержкой шорткатов test/benchmark/evaluate/pipeline;
- docker-compose.yml с профилями тестирования, оценки и бенчмарка;
- docs/DOCKER.md: руководство по сборке, запуску и монтированию томов;
- requirements.txt: добавлен matplotlib для построения графиков.
2026-09-22 21:26:20 +03:00

2.6 KiB
Raw Blame History

Руководство по запуску FlyGuard в Docker

1. Быстрая сборка образа

Сборка легковесного образа на базе python:3.11-slim-bookworm (включает OpenMP/BLAS и зависимости):

docker build -t flyguard:latest .

2. Запуск тестов

Контейнер по умолчанию выполняет самодиагностику и тестовый набор:

# Прямой запуск через Docker
docker run --rm flyguard:latest

# Либо через docker compose
docker compose run --rm test

3. Запуск конвейера и бенчмарка с данными лидара

Датасеты монтируются в контейнер в каталог /data:

# Оценка ложных тревог по всем бэгам
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. Интерактивная отладка

Войти внутрь контейнера с настроенным окружением:

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 — открывает командную оболочку