102 lines
3.3 KiB
Markdown
102 lines
3.3 KiB
Markdown
Система автоматической сборки 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]]. |