Docker обеспечивает изолированное и воспроизводимое окружение для запуска фреймворка.
Проверка:
docker --version
docker compose version
Файл: docker-compose.yml (в корне проекта)
services:
shanks-runner: # Backend runner
shanks-runner-mongodb: # MongoDB
shanks-client: # FastAPI REST API
| Сервис | Образ | Порт | Описание |
|---|---|---|---|
shanks-runner |
shanks-runner | - | Запуск экспериментов |
shanks-runner-mongodb |
mongo:latest | 27017 | Хранение результатов |
shanks-client |
shanks-client | 8080 | REST API |
Файл: .env (в корне проекта)
# MongoDB
MONGO_HOST=shanks-runner-mongodb
MONGO_PORT=27017
MONGO_USERNAME=admin
MONGO_PASSWORD=secret_password
# База данных
MONGO_DATABASE=trials
MONGO_COLLECTION=results
MONGO_AUTH_SOURCE=admin
docker compose build
Собираемые образы:
shanks-runner — из backend/Dockerfileshanks-client — из frontend/client/Dockerfiledocker compose up -d
# Только MongoDB
docker compose up -d shanks-runner-mongodb
# MongoDB + Runner
docker compose up -d shanks-runner-mongodb shanks-runner
# MongoDB + Client
docker compose up -d shanks-runner-mongodb shanks-client
docker compose exec shanks-runner python main.py run \
--config /app/config/options.json
Конфигурационные файлы и результаты доступны на хост-машине:
| Хост | Контейнер | Описание |
|---|---|---|
./backend/runner/config/ |
/app/config |
Конфигурации |
./backend/runner/output/ |
/app/output |
Результаты |
# Запуск
docker compose exec shanks-runner python main.py run \
--config /app/config/example.json
# Просмотр результатов
ls -la backend/runner/output/