Система автоматической сборки Docker образов через Gitea Actions. ## Обзор workflow В проекте настроены четыре workflow для автоматической сборки: | Workflow | Назначение | Registry | |----------|------------|----------| | `docker-build.yml` | Публикация в Docker Hub | docker.io | | `docker-build-local.yml` | Публикация в Harbor/локальный registry | Настраиваемый | | `docker-build-test.yml` | Только тестирование сборки | Без registry | | `pull-request-check.yml` | Проверка Pull Request | Без registry | ## Быстрая настройка ### 1. Включить Actions в Gitea ```ini # app.ini [actions] ENABLED = true DEFAULT_ACTIONS_URL = https://gitea.com ``` ### 2. Настроить Secrets #### Docker Hub - `DOCKER_USERNAME` - логин Docker Hub - `DOCKER_PASSWORD` - токен доступа #### Harbor/Локальный Registry - `DOCKER_REGISTRY_URL` - адрес registry (reg.ddl.su) - `DOCKER_REGISTRY_PROJECT` - проект Harbor (salvage_bot) - `DOCKER_REGISTRY_USERNAME` - логин (robot account) - `DOCKER_REGISTRY_PASSWORD` - токен ## Триггеры сборки ### Автоматические - **Push в main/develop** → создает образы `latest`, `main`, `develop` - **Теги v*** → создает семантические версии (`1.0.0`, `1.0`, `1`, `latest`) - **Pull Request** → тестирует сборку, создает тег `pr-XXX` ### Ручной запуск - Через веб-интерфейс Gitea Actions - Возможность указать произвольный тег ## Результат сборки ### Docker Hub ```bash docker.io/YOUR_USERNAME/salvagedb-bot:latest ``` ### Harbor Registry ```bash reg.ddl.su/salvage_bot/salvagedb-bot:latest ``` ## Использование образов ### Docker Run ```bash docker run -d --name salvagedb-bot \ --env-file .env \ reg.ddl.su/salvage_bot/salvagedb-bot:latest ``` ### Docker Compose ```yaml services: bot: image: reg.ddl.su/salvage_bot/salvagedb-bot:latest env_file: .env restart: unless-stopped ``` ## Решение проблем ### "Username and password required" 1. Проверьте настройку всех необходимых secrets 2. Убедитесь в правильности имен secrets 3. Используйте robot account для Harbor ### Ошибки авторизации Harbor 1. Создайте robot account в Harbor UI 2. Используйте формат `robot$username` 3. Проверьте права на Push Artifact ### Проблемы сборки 1. Используйте `docker-build-test.yml` для локального тестирования 2. Проверьте валидность Dockerfile 3. При необходимости обратитесь к [[Harbor-Registry]] ## Дополнительные возможности - ✅ **Кэширование Docker слоев** - ✅ **Мультиплатформенная сборка** (Docker Hub) - ✅ **Валидация безопасности** - ✅ **Автоматическое тестирование** Подробная конфигурация описана в [[Harbor-Registry]].