Проект Yamdb_final создан для демонстрации методики DevOps (Development Operations) и идеи Continuous Integration (CI) и Continuous Deployment (CD), суть которых заключается в интеграции и автоматизации следующих процессов:
- синхронизация изменений в коде
- автоматический запуск тестов
- сборка, запуск приложения в среде, аналогичной среде боевого сервера
- деплой на сервер после успешного прохождения всех тестов
- уведомление об успешном прохождении всех этапов
Установка docker:
sudo apt install -y docker-ce
Установка docker-compose:
apt install docker-compose
Создайте папку проекта на удаленном сервере и скопируйте туда файлы docker-compose.yaml, default.conf (настройки nginx):
scp ./<FILENAME> <USER>@<HOST>:/home/<USER>/yamdb_final/
Для использования Continuous Integration и Continuous Deployment необходимо в репозитории на GitHub прописать Secrets - переменные доступа к вашим сервисам. Переменые прописаны в workflows/yamdb_workflow.yaml
- DOCKER_PASSWORD, DOCKER_USERNAME - для загрузки и скачивания образа с DockerHub
- USER, HOST, PASSPHRASE, SSH_KEY - для подключения к удаленному серверу
- TELEGRAM_TO, TELEGRAM_TOKEN - для отправки сообщений в Telegram
- При пуше в ветку main приложение пройдет тесты, обновит образ на DockerHub и сделает деплой на сервер. Дальше необходимо подлкючиться к серверу.
ssh <USER>@<HOST>
- Перейдите в запущенный контейнер приложения командой:
docker container exec -it <CONTAINER ID> bash
- Внутри контейнера необходимо выполнить миграции и собрать статику приложения:
python manage.py collectstatic --no-input
python manage.py migrate
- Также можно наполнить базу данных начальными тестовыми данными:
python manage.py loaddata fixtures.json
http://51.250.106.88/admin/ http://51.250.106.88/redoc/
- http://51.250.106.88/api/v1/auth/token/
- http://51.250.106.88/api/v1/users/
- http://51.250.106.88/api/v1/categories/
- http://51.250.106.88/api/v1/genres/
- http://51.250.106.88/api/v1/titles/
- http://51.250.106.88/api/v1/titles/{title_id}/reviews/
- http://51.250.106.88/api/v1/titles/{title_id}/reviews/{review_id}/
- http://51.250.106.88/api/v1/titles/{title_id}/reviews/{review_id}/comments/
Selivanov Dmitry