Создаем файлы с переменными окружения для контейнеров в докере
$ touch .env .env.db .env.mq
Заполняем содержимым
# .env
DATABASE_URL=postgresql+psycopg2://postgres:postgres@db:5432/rabbitmq
RABBITMQ_DEFAULT_USER=user
RABBITMQ_DEFAULT_PASS=user
# .env.db
POSTGRES_DB=rabbitmq
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# env.mq
RABBITMQ_DEFAULT_USER=user
RABBITMQ_DEFAULT_PASS=user
Запускаем + билдим докер файлы
$ docker compose up -d --build
# или
$ docker-compose up -d --build
Создаем бд и добавляем туда данные
$ docker compose exec rpc python database/migrations/__make_db__.py
$ docker compose exec rpc python database/migrations/__seed_data__.py
# или
$ docker-compose exec rpc python database/migrations/__make_db__.py
$ docker-compose exec rpc python database/migrations/__seed_data__.py
Данные для входа по умолчанию, если вы добавляли данные в бд при помощи скрипта
Имя пользователя: admin Пароль: admin
$ docker compose exec rpc python client.py
# или
$ docker-compose exec rpc python client.py
Список вещей которые должны быть реализованны:
- Использовалась реляционная база данных и ORM SQLAlchemy с PostgreSQL.
- Поддержка асинхронной обработки клиентских запросов с помощью очередей RabbitMQ.
- Запуск более одного экземпляра сервера был невозможен.
- Пользователь должен уметь аутентифицироваться.
- Возможность поиска по авторам и названию.