[k8s] CI/CD pipeline для сборки и пуша Docker-образов #76

Open
opened 2026-05-13 22:08:47 +03:00 by Toutsu · 0 comments
Owner

Контекст

Сейчас Docker-образы gmrelay-bot и gmrelay-web собираются и пушатся в registry вручную или локально. Для k8s нужен автоматический CI/CD pipeline, который собирает и публикует образы при merge в main.

Что нужно

  1. Gitea Actions workflow (.gitea/workflows/build-and-push.yaml):
    • Триггер: push в main, тег v*
    • Шаги: checkout → Docker login → build (multi-arch AMD64 + ARM64) → push в git.codeanddice.ru/toutsu/gmrelay-bot и gmrelay-web
  2. ImagePullSecret в k8s с токеном для чтения из registry
  3. Версионирование:
    • main → тег latest (или main-<sha>)
    • git tag v1.16.0 → тег 1.16.0
  4. Docker BuildKit / buildx для multi-platform (если registry поддерживает)

Что нужно изменить

  • src/GmRelay.Bot/Dockerfile — проверить, что multi-stage build корректный
  • src/GmRelay.Web/Dockerfile — аналогично
  • .gitea/workflows/ — создать workflow файл
  • Добавить DOCKER_REGISTRY_TOKEN в Gitea Actions secrets

Критерии приёмки

  • При push в main образы автоматически собираются и пушатся
  • k8s тянет образы из git.codeanddice.ru через ImagePullSecret
  • Multi-arch поддержка (AMD64 для облака, ARM64 для Pi5 / локального тестирования)
  • Pipeline отображается в Gitea Actions UI, ошибки видны в PR
## Контекст Сейчас Docker-образы `gmrelay-bot` и `gmrelay-web` собираются и пушатся в registry вручную или локально. Для k8s нужен автоматический CI/CD pipeline, который собирает и публикует образы при merge в `main`. ## Что нужно 1. **Gitea Actions workflow** (`.gitea/workflows/build-and-push.yaml`): - Триггер: push в `main`, тег `v*` - Шаги: checkout → Docker login → build (multi-arch AMD64 + ARM64) → push в `git.codeanddice.ru/toutsu/gmrelay-bot` и `gmrelay-web` 2. **ImagePullSecret** в k8s с токеном для чтения из registry 3. **Версионирование**: - `main` → тег `latest` (или `main-<sha>`) - git tag `v1.16.0` → тег `1.16.0` 4. **Docker BuildKit / buildx** для multi-platform (если registry поддерживает) ## Что нужно изменить - `src/GmRelay.Bot/Dockerfile` — проверить, что multi-stage build корректный - `src/GmRelay.Web/Dockerfile` — аналогично - `.gitea/workflows/` — создать workflow файл - Добавить `DOCKER_REGISTRY_TOKEN` в Gitea Actions secrets ## Критерии приёмки - [ ] При push в `main` образы автоматически собираются и пушатся - [ ] k8s тянет образы из `git.codeanddice.ru` через ImagePullSecret - [ ] Multi-arch поддержка (AMD64 для облака, ARM64 для Pi5 / локального тестирования) - [ ] Pipeline отображается в Gitea Actions UI, ошибки видны в PR
Toutsu added this to the Этап — Kubernetes / k8s Production milestone 2026-05-13 22:08:47 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#76