Приложение упаковано в Docker-контейнер и разворачивается с помощью Ansible.
Внутри Docker-контейнера доступны две команды: store-db
— утилита
для управления состоянием базы данных и store-api
— утилита для
запуска REST API сервиса.
Как применить миграции:
docker run -it \
-e ANALYZER_PG_URL=postgresql://user:hackme@localhost/store \
semenchenkoaleksey/backendschool2021 store-db upgrade head
Как запустить REST API сервис локально на порту 8081:
docker run -it -p 8081:8081 \
-e ANALYZER_PG_URL=postgresql://user:hackme@localhost/store \
semenchenkoaleksey/backendschool2021
Все доступные опции запуска любой команды можно получить с помощью
аргумента --help
:
docker run semenchenkoaleksey/backendschool2021 store-db --help
docker run semenchenkoaleksey/backendschool2021 store-api --help
Опции для запуска можно указывать как аргументами командной строки, так и
переменными окружения с префиксом STORE
(например: вместо аргумента
--pg-url
можно воспользоваться STORE_PG_URL
).
Чтобы развернуть и запустить сервис на серверах, добавьте список серверов в файл deploy/hosts.ini (с установленной Ubuntu) и выполните команды:
cd deploy
ansible-playbook -i hosts.ini --user=root deploy.yml
make
Отобразить список доступных командmake devenv
Создать и настроить виртуальное окружение для разработкиmake postgres
Поднять Docker-контейнер с PostgreSQLmake test
Запустить тестыmake docker
Собрать Docker-образmake upload
Загрузить Docker-образ на hub.docker.com
make devenv
make postgres
source env/bin/activate
store-db upgrade head
store-api
После запуска команд приложение начнет слушать запросы на 0.0.0.0:8081.
Для отладки в PyCharm необходимо запустить env/bin/store-api
.
make devenv
make postgres
source env/bin/activate
pytest
Для отладки в PyCharm необходимо запустить env/bin/pytest
.