Skip to content

Conversation

@nsvk13
Copy link
Member

@nsvk13 nsvk13 commented Aug 4, 2025

🐳 Что добавлено

Настроена полная Docker конфигурация и CI/CD пайплайн для автоматического деплоя на сервер.

Добавленные файлы:

  • Dockerfile - мультистейдж сборка с nginx
  • docker-compose.yml - конфигурация для запуска контейнера
  • .dockerignore - оптимизация контекста сборки (исключение node_modules, .git и т.д.)
  • nginx.conf - конфигурация веб-сервера для SPA с поддержкой роутинга
  • .github/workflows/build.yml - сборка проекта и сохранение артефактов
  • .github/workflows/lint.yml - проверка ESLint и TypeScript
  • .github/workflows/deploy.yml - автоматический деплой на сервер через SSH

Исправления:

  • vite.config.ts - исправлен base path для production (убран /frontend-react/ префикс, который вызывал 404 ошибки при загрузке ассетов)
  • AppRouter.tsx - убран неиспользуемый импорт, из-за его линтер падал с ошибками.

🔄 CI/CD Pipeline

При Push в main:

  1. Lint - проверка ESLint и TypeScript
  2. Build - сборка проекта
  3. Deploy - автоматический деплой на сервер:
    • Клонирование/обновление репозитория в /opt/frontend-react
    • Сборка и запуск Docker контейнера
    • Проверка успешности деплоя

При PR:

  • Запускаются только build и lint jobs для проверки кода

🚀 Деплой

  • Проект автоматически деплоится в Docker контейнере с nginx
  • Доступен на 80 порту сервера
  • Поддержка SPA роутинга (все запросы перенаправляются на index.html)
  • Health check endpoint на /health
  • Логирование nginx для отладки

🔧 Локальное тестирование

docker-compose up --build

@nsvk13 nsvk13 requested a review from ignatKupryashin August 4, 2025 13:18
@nsvk13 nsvk13 self-assigned this Aug 4, 2025
@nsvk13 nsvk13 changed the base branch from main to develop August 4, 2025 13:19
tailwindcss(),
],
base: isProduction ? '/frontend-react/' : '/',
base: isProduction ? '/' : '/',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Объясни это изменение плз. Что у тебя ломалось?
Я, если честно, сам плохо помню зачем я это добавлял - мб ради деплоя на GH Pages

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Проблема была в том, что когда приложение собиралось для Docker, Vite генерировал пути к файлам вида /frontend-react/assets/index.js, но nginx раздавал файлы из корня контейнера (/usr/share/nginx/html).
Получалось что браузер искал файлы по пути /frontend-react/assets/..., а nginx их не мог найти, потому что они лежали просто в /assets/.... Из-за этого был белый экран.
Теперь base: '/' для всех режимов - это означает что все пути будут относительно корня, и nginx сможет их найти.

@nsvk13 nsvk13 merged commit 3081705 into develop Aug 4, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants