Обновлен файл docker-build-local.yml для использования переменной REGISTRY_URL вместо REGISTRY, что улучшает читаемость кода. Также добавлены комментарии для пояснения формата URL реестра и обновлено отображение информации о репозитории в сводке сборки. Эти изменения повышают удобство и поддерживаемость CI/CD процесса.
This commit is contained in:
parent
278986b6e0
commit
4a82849ec2
@ -19,7 +19,7 @@ on:
|
|||||||
default: 'latest'
|
default: 'latest'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
IMAGE_NAME: salvagedb/salvagedb-bot
|
IMAGE_NAME: salvagedb-bot
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@ -43,22 +43,26 @@ jobs:
|
|||||||
- name: Generate tags
|
- name: Generate tags
|
||||||
id: tags
|
id: tags
|
||||||
run: |
|
run: |
|
||||||
REGISTRY="${{ secrets.DOCKER_REGISTRY_URL }}"
|
# Harbor формат: registry_url/project/repository:tag
|
||||||
|
REGISTRY_URL="${{ secrets.DOCKER_REGISTRY_URL }}"
|
||||||
IMAGE_NAME="${{ env.IMAGE_NAME }}"
|
IMAGE_NAME="${{ env.IMAGE_NAME }}"
|
||||||
|
|
||||||
|
# Убираем протокол из registry URL если есть
|
||||||
|
REGISTRY_URL=$(echo "$REGISTRY_URL" | sed 's|^https\?://||')
|
||||||
|
|
||||||
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
||||||
echo "tags=${REGISTRY}/${IMAGE_NAME}:${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
|
echo "tags=${REGISTRY_URL}/${IMAGE_NAME}:${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
|
||||||
elif [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
elif [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
||||||
pr_number=${{ github.event.number }}
|
pr_number=${{ github.event.number }}
|
||||||
echo "tags=${REGISTRY}/${IMAGE_NAME}:pr-${pr_number}" >> $GITHUB_OUTPUT
|
echo "tags=${REGISTRY_URL}/${IMAGE_NAME}:pr-${pr_number}" >> $GITHUB_OUTPUT
|
||||||
elif [[ "${{ github.ref_type }}" == "tag" ]]; then
|
elif [[ "${{ github.ref_type }}" == "tag" ]]; then
|
||||||
tag=${GITHUB_REF#refs/tags/}
|
tag=${GITHUB_REF#refs/tags/}
|
||||||
echo "tags=${REGISTRY}/${IMAGE_NAME}:${tag},${REGISTRY}/${IMAGE_NAME}:latest" >> $GITHUB_OUTPUT
|
echo "tags=${REGISTRY_URL}/${IMAGE_NAME}:${tag},${REGISTRY_URL}/${IMAGE_NAME}:latest" >> $GITHUB_OUTPUT
|
||||||
elif [[ "${{ github.ref_name }}" == "main" ]]; then
|
elif [[ "${{ github.ref_name }}" == "main" ]]; then
|
||||||
echo "tags=${REGISTRY}/${IMAGE_NAME}:latest,${REGISTRY}/${IMAGE_NAME}:main" >> $GITHUB_OUTPUT
|
echo "tags=${REGISTRY_URL}/${IMAGE_NAME}:latest,${REGISTRY_URL}/${IMAGE_NAME}:main" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
branch_name=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9]/-/g')
|
branch_name=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9]/-/g')
|
||||||
echo "tags=${REGISTRY}/${IMAGE_NAME}:${branch_name}" >> $GITHUB_OUTPUT
|
echo "tags=${REGISTRY_URL}/${IMAGE_NAME}:${branch_name}" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
@ -81,9 +85,14 @@ jobs:
|
|||||||
echo "## Docker Build Summary" >> $GITHUB_STEP_SUMMARY
|
echo "## Docker Build Summary" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "- **Event:** ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
|
echo "- **Event:** ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "- **Registry:** ${{ secrets.DOCKER_REGISTRY_URL }}" >> $GITHUB_STEP_SUMMARY
|
echo "- **Registry:** ${{ secrets.DOCKER_REGISTRY_URL }}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "- **Image:** ${{ env.IMAGE_NAME }}" >> $GITHUB_STEP_SUMMARY
|
echo "- **Repository:** ${{ env.IMAGE_NAME }}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "- **Tags:** ${{ steps.tags.outputs.tags }}" >> $GITHUB_STEP_SUMMARY
|
echo "- **Tags:** ${{ steps.tags.outputs.tags }}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "- **Commit:** ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
|
echo "- **Commit:** ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "### 📦 Harbor Format:" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "docker pull ${{ steps.tags.outputs.tags }}" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
# Проверяем наличие credentials
|
# Проверяем наличие credentials
|
||||||
if [[ "${{ secrets.DOCKER_REGISTRY_USERNAME }}" == "" || "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" == "" || "${{ secrets.DOCKER_REGISTRY_URL }}" == "" ]]; then
|
if [[ "${{ secrets.DOCKER_REGISTRY_USERNAME }}" == "" || "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" == "" || "${{ secrets.DOCKER_REGISTRY_URL }}" == "" ]]; then
|
||||||
|
|||||||
51
HARBOR_TAG_FORMAT.md
Normal file
51
HARBOR_TAG_FORMAT.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Harbor Registry Tag Format Fix
|
||||||
|
|
||||||
|
## Проблема
|
||||||
|
Ошибка в формате тегов Docker образов для Harbor registry. Harbor ожидает формат:
|
||||||
|
```
|
||||||
|
reg.ddl.su/salvage_bot/REPOSITORY[:TAG]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Исправление
|
||||||
|
|
||||||
|
### До (неправильно):
|
||||||
|
```yaml
|
||||||
|
env:
|
||||||
|
IMAGE_NAME: salvagedb/salvagedb-bot # содержит лишний slash
|
||||||
|
|
||||||
|
# Генерировал теги вида: reg.ddl.su/salvagedb/salvagedb-bot:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### После (правильно):
|
||||||
|
```yaml
|
||||||
|
env:
|
||||||
|
IMAGE_NAME: salvagedb-bot # только имя репозитория
|
||||||
|
|
||||||
|
# Генерирует теги вида: reg.ddl.su/salvage_bot/salvagedb-bot:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
## Объяснение
|
||||||
|
|
||||||
|
Harbor использует трёхуровневую структуру:
|
||||||
|
1. **Registry URL**: `reg.ddl.su`
|
||||||
|
2. **Project/Namespace**: `salvage_bot` (уже включен в настройках Harbor)
|
||||||
|
3. **Repository**: `salvagedb-bot` (указывается в IMAGE_NAME)
|
||||||
|
|
||||||
|
Конечный формат: `registry_url/project/repository:tag`
|
||||||
|
|
||||||
|
## Изменения в файлах
|
||||||
|
|
||||||
|
- ✅ `.gitea/workflows/docker-build-local.yml` - исправлен формат тегов
|
||||||
|
- ✅ Убрано лишнее `/salvagedb/` из пути
|
||||||
|
- ✅ Добавлена нормализация URL (убирает https:// если есть)
|
||||||
|
- ✅ Обновлена документация в Summary
|
||||||
|
|
||||||
|
## Тестирование
|
||||||
|
|
||||||
|
Теперь workflow будет генерировать правильные теги:
|
||||||
|
- `reg.ddl.su/salvage_bot/salvagedb-bot:latest`
|
||||||
|
- `reg.ddl.su/salvage_bot/salvagedb-bot:main`
|
||||||
|
- `reg.ddl.su/salvage_bot/salvagedb-bot:v1.0.0`
|
||||||
|
|
||||||
|
Вместо неправильных:
|
||||||
|
- ~~`reg.ddl.su/salvagedb/salvagedb-bot:latest`~~ ❌
|
||||||
Loading…
x
Reference in New Issue
Block a user