Проект представляет собой веб сервис для мультиплеерной игры в пошаговую игру "Сеги". Компоненты проекта реализованы на основе библиотек fastapi и aiopika. В качестве сервера базы данных использовался Postgres. Для общения с базой данных использовалась Tortoise ORM.
services
- python package со всем сервисами приложенияrpc_service
- вспомогательная библиотека на основеaiopika
для шаблонизации описания сервисовamqp_events
- вспомогательная библиотека для поддержки отправки событий черезrabbitmq
game_model
- библиотека, реализующая всю логику игры "Сеги"
Для запуска докер контейнеров бэкенда перейдите в папку src/frontend/
. В нем вы находится файл credentials.env
,
в котором находятся все данные для входа (например, для rabbitmq, postgres). Поменяйте в нем значения
переменных окружения на нужные вам.
Далее, перейдите в терминал и запустите следующую команду (обязательно запускать из дериктории src/frontend
!)
docker-compose build
В docker будут созданы все необходимые образы. Осталось ввести следующую команду
docker-compose up
В начальные моменты времени работы сервисов некоторые могут падать и перезагружаться. Это связано с тем, что сервисы пытаются подключиться к rabbitmq или postgres, когда они еще не были инициализированы.
Для остановки контейнеров нажмите Ctrl + C
, а для удаления введите следующую команду
docker-compose down