shanks-university

Установка через Docker

Обзор

Docker обеспечивает изолированное и воспроизводимое окружение для запуска фреймворка.


Предварительные требования

Проверка:

docker --version
docker compose version

Структура Docker Compose

Файл: 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

Шаг 1. Создание .env файла

Файл: .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

Шаг 2. Сборка образов

docker compose build

Собираемые образы:

  1. shanks-runner — из backend/Dockerfile
  2. shanks-client — из frontend/client/Dockerfile

Шаг 3. Запуск контейнеров

Все сервисы

docker 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

Шаг 4. Запуск эксперимента в контейнере

docker compose exec shanks-runner python main.py run \
    --config /app/config/options.json

Volume mounts

Конфигурационные файлы и результаты доступны на хост-машине:

Хост Контейнер Описание
./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/