3.8 KiB
3.8 KiB
Настройка CI/CD (Drone CI)
Проект настроен для автоматической сборки Docker-образов и их развертывания с помощью Drone CI.
Обзор пайплайна (.drone.yml)
Конфигурация состоит из 4-х пайплайнов:
- build-backend: Собирает образ
backend, тегирует его (latest + commit SHA) и пушит в Docker Registry. - build-frontend: Многоэтапная сборка (Node.js build -> Nginx image), пуш в Registry.
- build-ping-helper: Сборка микросервиса
ping-helper. - deploy-production: Запускается только при пуше в
masterпосле успешного завершения всех сборок. Подключается к серверу по SSH, обновляет код, скачивает новые образы и перезапускает контейнеры.
Настройка интеграции (Gitea + Drone)
-
Активация репозитория:
- Зайдите в ваш Drone CI.
- Найдите репозиторий
minecraft-platform/platformи нажмите "Activate".
-
Настройка секретов (Secrets): В настройках репозитория в Drone добавьте следующие секреты:
Имя Секрета Описание gitea_usernameЛогин пользователя Gitea, от имени которого будут пушиться образы в Registry. gitea_passwordПароль (или токен) этого пользователя. ssh_hostIP адрес или домен вашего продакшен-сервера. ssh_userИмя пользователя на сервере (например, rootилиubuntu).ssh_keyПриватный SSH ключ для доступа к серверу (Private Key, который соответствует Public Key в ~/.ssh/authorized_keysна сервере). -
Docker Registry: Убедитесь, что
gitea.mrixs.meподдерживает Docker Registry и у пользователя есть права на запись в пакетыminecraft-platform/backend,frontend,ping-helper. -
Настройка Вебхука (Webhooks): Чтобы Drone автоматически запускал сборку при пуше (push):
- В Gitea перейдите в Settings (Настройки) репозитория -> Webhooks.
- Проверьте, есть ли там вебхук для Drone. Если нет, он должен был создаться автоматически при активации репозитория в Drone.
- Если вебхука нет, добавьте его вручную:
- Target URL:
https://drone.mrixs.me/hook(адрес вашего Drone сервера) - HTTP Method:
POST - Content Type:
application/json - Trigger On:
All Events(или как минимум Push и Pull Request)
- Target URL:
- Нажмите "Test Delivery", чтобы проверить связь. Обратите внимание на код ответа (должен быть 200 OK).
Процесс развертывания
- Сделайте изменения в коде.
- Закоммитьте и запушьте в ветку
master. - Drone автоматически:
- Соберет новые образы.
- Запушит их в Registry.
- Зайдет на сервер, сделает
docker-compose pullиdocker-compose up -d.