Нужно помочь доделать небольшой проект для Яндекс Практикум с Docker

1 000 руб. за проект
15 августа 2023, 21:29 • 6 откликов • 96 просмотров
Нужно помочь доделать небольшой финальный проект на Яндекс Практикуме. Я почти всё сделал из описанного ниже тз, у меня полностью рабочее CI/CD деплой с отправкой сообщения, но локальные тесты не проходят (3 ошибки) и не отображается сам проект по хосту.

Вот само задание
В финальном задании спринта вам предстоит:
  • настроить запуск проекта Kittygram в контейнерах;
  • настроить автоматическое тестирование и деплой этого проекта на удалённый сервер.
Автоматизацию надо настроить с помощью сервиса GitHub Actions.
При пуше в ветку main:
  • проект должен тестироваться,
  • в случае успешного прохождения тестов образы должны обновляться на Docker Hub,
  • на сервере должны быть запущены контейнеры из обновлённых образов.
Шаг первый: настройка контейнеризации
  • Напишите Dockerfile для образа kittygram_backend. За основу можно взять Dockerfile для бэкенда Taski.
  • Для создания образа kittygram_gateway используйте готовый Dockerfile из папки nginx/.
    • Обновите конфигурацию Nginx и добавьте проксирование запросов для API и админки.
  • Для создания контейнера фронтенда используйте готовый Dockerfile из папки frontend/.
  • Настройте совместную работу контейнеров backend и db:
    • Настройте Django для работы с PostgreSQL.
    • Создайте файл .env для PostgreSQL и контейнера backend: впишите в него переменные для инициализации БД и связи с ней.
  • Допишите docker-compose.yml, заготовленный в репозитории. В нём уже есть описание контейнеров, но его нужно расширить:
    • добавьте volume для статических файлов админки и фронтенда,
    • добавьте volume для хранения файлов, загруженных пользователями,
    • подключите файл .env к контейнерам db и backend.
Шаг второй: настройка CI/CD Автоматизируйте тестирование и деплой проекта Kittygram с помощью GitHub Actions.
Напишите в файле .github/workflows/main.yml workflow, который будет:
  • проверять код бэкенда в репозитории на соответствие PEP8;
  • запускать тесты для фронтенда и бэкенда (тесты уже написаны);
  • собирать образы проекта и отправлять их на Docker Hub (замените username на ваш логин на Docker Hub):
    • username/kittygram_backend,
    • username/kittygram_frontend,
    • username/kittygram_gateway.
  • обновлять образы на сервере и перезапускать приложение при помощи Docker Compose;
  • выполнять команды для сборки статики в приложении бэкенда, переносить статику в volume; выполнять миграции;
  • извещать вас в Telegram об успешном завершении деплоя.