Настройка Harbor Docker Registry для Gitea Actions. ## Быстрая настройка ### 1. Создание Robot Account 1. Откройте Harbor UI: `https://reg.ddl.su` 2. Войдите в проект `salvage_bot` 3. Перейдите **Robot Accounts** → **New Robot Account** 4. Настройте: - **Name**: `gitea-ci` - **Expiration**: выберите срок - **Permissions**: `Push Artifact` + `Pull Artifact` 5. Скопируйте: - **Username**: `robot$gitea-ci` - **Token**: сгенерированный токен ### 2. Настройка Secrets в Gitea ``` DOCKER_REGISTRY_URL = reg.ddl.su DOCKER_REGISTRY_PROJECT = salvage_bot DOCKER_REGISTRY_USERNAME = robot$gitea-ci DOCKER_REGISTRY_PASSWORD = <токен robot account> ``` ### 3. Результат После настройки образы будут доступны: ```bash reg.ddl.su/salvage_bot/salvagedb-bot:latest ``` ## Формат тегов Harbor Harbor использует трёхуровневую структуру: ``` registry_url/project/repository:tag ``` ### Примеры: - `reg.ddl.su/salvage_bot/salvagedb-bot:latest` - `reg.ddl.su/salvage_bot/salvagedb-bot:v1.0.0` - `reg.ddl.su/salvage_bot/salvagedb-bot:main` ## Устранение проблем ### Ошибка 400 Bad Request при OAuth **Причины:** - Неправильный формат username (должен начинаться с `robot$`) - Некорректный токен robot account - Отсутствие PROJECT_NAME в пути тега - Отсутствие прав на проект **Решение:** 1. Убедитесь что username в формате `robot$name` 2. Проверьте корректность токена 3. Убедитесь что настроен `DOCKER_REGISTRY_PROJECT` 4. Проверьте права robot account в Harbor ### Ошибка 403 Forbidden - Robot account не имеет прав Push Artifact - Проект недоступен для robot account ### Проверка доступности ```bash # Локальный тест docker login reg.ddl.su -u robot$gitea-ci # Pull тест docker pull reg.ddl.su/salvage_bot/salvagedb-bot:latest ``` ## Преимущества Robot Account - ✅ **Безопасность** - ограниченные права только на CI/CD - ✅ **Изоляция** - можно отозвать без влияния на основной аккаунт - ✅ **Аудит** - чёткое разграничение доступа - ✅ **Автоматизация** - создан специально для CI/CD ## Связанные страницы - [[Gitea-Actions]] - настройка CI/CD workflow - [[Docker-Setup]] - развертывание с Docker