diff --git a/README.md b/README.md index d2b63d9..605b078 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,52 @@ # Watchman Cpp -Сервис для запуска задач и тестов. Оркестратор контейнеров, в которых выполняется код от пользователей. +Сервис для запуска задач и тестов. Оркестратор Docker-контейнеров, в которых выполняется код от пользователей. ## Сборка проекта Для сборки прокета необходимо: — установить в систему библиотеки: fmt, boost 1.66 или выше, curl; -— обновить самбодуль с DockerClient: -```bash +— обновить самбодули: +```shell git submodule update --init --recursive ``` -В проект исходниками скопированы restinio, так как не планируем, чтобы они менялись. +Для сборки выполните: + +```shell +cmake -B build/ +cmake --build build/ +``` + +## Запуск + +Перед запуском склонируйте к себе [проект с нашими Docker-образами.](https://github.com/senjun-team/senjun-images) Выполните в нем скрипт, который собирает все образы кроме самого тяжелого: + +```shell +sh create_images.sh +``` + +После того как образы собраны, можно запускать сервис. Он лежит в `build/bin`: + +```shell +./watchman_cpp +``` + +Рядом с ним лежит конфиг `watchman_cpp_config.json`. Чтобы поменять количество контейнеров, вносите в него изменения и перезапускайте сервис. + +Если все в порядке, при запуске сервиса вы увидите примерно такой лог: + +``` +... +[2025-11-16 13:57:06.058] [sync_logger] [info] Service launched +[2025-11-16 13:57:06.059] [sync_logger] [info] Watchman working on 8000 port +``` + +Теперь можно пробовать его курлить. ## API У сервиса единственная апишка `/check`: -``` +```shell curl -X 'POST' \ 'http://127.0.0.1:8000/check' \ -H 'accept: application/json' \ @@ -28,12 +59,14 @@ curl -X 'POST' \ ``` Ответ: -``` +```json {"error_code":0,"output":"123","tests_error_code":0,"tests_error":""} ``` ## Тестирование Docker API +Нужно на случай, если в вашей системе что-то не так с самим докером. + https://docs.docker.com/reference/api/engine/v1.41/#tag/Container/operation/ContainerList ```shell