Яндекс Практикум. Проект 16-го спринта: CI и CD проекта api_yamdb.
Проект YaMDb
собирает отзывы пользователей на произведения из категорий: «Книги», «Фильмы», «Музыка».
- Произведения делятся на категории. Список категорий может быть расширен администратором;
- Произведения, фильмы и музыка не хранятся в приложении;
- В каждой категории есть произведения: книги, фильмы или музыка;
- Произведению может быть присвоен жанр из списка предустановленных. Новые жанры может создавать только администратор;
- Пользователи могут оставлять отзывы и ставить оценку произведениям. Из пользовательских оценок формируется рейтинг. На одно произведение можно оставить только один отзыв.
-
Клонировать репозиторий:
git clone https://github.com/egorcoders/yamdb_final.git
-
Создать
.env
файл на уровне с файломdocker-compose.yaml
в директории infra с указаниме данных:- SECRET_KEY - секретный ключ Django;
- DB_ENGINE - движок базы данных (БД) postgresql:
django.db.backends.postgresql
; - DB_NAME - имя БД:
postgres
; - POSTGRES_USER - пользователь БД:
postgres
; - POSTGRES_PASSWORD - пароль рользователя БД:
postgres
; - DB_HOST - адрес удалённого сервера БД, по умолчанию:
db
; - DB_PORT - порт сервера базы данных:
5432
;
-
Создать и активировать виртуальное пространство, установить зависимости и запустить тесты:
Для Windows:
cd yamdb_final python -m venv venv source venv/Scripts/activate cd api_yamdb pip install -r requirements.txt cd .. pytest
Для Mac/Linux:
cd yamdb_final python3 -m venv venv source venv/bin/activate cd api_yamdb pip install -r requirements.txt cd .. pytest
-
Запустить контейнер Docker:
- Проверить статус Docker:
docker --version
- Запустить docker-compose:
cd infra/ docker-compose up -d
-
Выполнить миграции, создать суперпользователя и мигрировать статику:
docker-compose exec web python manage.py migrate docker-compose exec web python manage.py createsuperuser docker-compose exec web python manage.py collectstatic --no-input
-
Для запуска в виртуальном окружении, после создания и активации виртуального пространства, установки зависимостей, запустить проект локально:
Для Windows:
python manage.py runserver
Для Mac/Linux:
python3 manage.py runserver
-
Проверить доступность сервиса:
http://localhost/admin http://51.250.80.244/admin