CI: токен реестра и моделей из секрета ACTION_PAT
docker / build (push) Failing after 1m47s

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
DenozordecandClaude Sonnet 5.5 committed 2026-10-28 17:22:03 +07:00
1 parent efc9a4f56a
commit df08cbc121
2 files changed
+10 -10

No files matched your search

+7 -6
View File
@@ -4,10 +4,10 @@
# Нужно один раз настроить (подробно — docs/docker.md, раздел «CI/CD в Gitea»):
# * включить Actions в репозитории и зарегистрировать act_runner с доступом к Docker;
# * Secrets репозитория:
# REGISTRY_USER пользователь Gitea
# REGISTRY_TOKEN токен с правами write:package
# ACTION_PAT токен Gitea (права write:package и read:package): им образ публикуется в реестр
# и скачиваются модели (Secret; Variable с тем же именем тоже подойдёт)
# REGISTRY_USER (необязательно) владелец токена; по умолчанию владелец репозитория
# MODELS_URL (необязательно) ссылка на models-bundle.tar.gz; без неё образ собирается без моделей
# MODELS_TOKEN (необязательно) токен для скачивания по MODELS_URL
name: docker
on:
@@ -33,7 +33,7 @@ jobs:
- name: Модели (docker-models/models)
env:
MODELS_URL: ${{ secrets.MODELS_URL }}
MODELS_TOKEN: ${{ secrets.MODELS_TOKEN }}
MODELS_TOKEN: ${{ secrets.ACTION_PAT || vars.ACTION_PAT }}
run: |
if [ -n "$MODELS_URL" ]; then
echo "скачиваю модели"
@@ -89,9 +89,10 @@ jobs:
- name: Публикация в реестр Gitea
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
REGISTRY_USER: ${{ secrets.REGISTRY_USER || github.repository_owner }}
REGISTRY_TOKEN: ${{ secrets.ACTION_PAT || vars.ACTION_PAT }}
run: |
set -e
test -n "$REGISTRY_TOKEN" || { echo "не задан ACTION_PAT (Settings → Actions → Secrets)"; exit 1; }
echo "$REGISTRY_TOKEN" | docker login "${{ steps.meta.outputs.registry }}" -u "$REGISTRY_USER" --password-stdin
for t in ${{ steps.meta.outputs.tags }}; do docker push "$t"; done
+3 -4
View File
@@ -199,10 +199,9 @@ Workflow `.gitea/workflows/docker.yml` собирает образ и публи
| Секрет | Значение |
|---|---|
| `REGISTRY_USER` | пользователь Gitea, под которым публикуется образ |
| `REGISTRY_TOKEN` | токен этого пользователя с правами `write:package` (и `read:package`) |
| `ACTION_PAT` | токен Gitea (Settings → Applications → Access Tokens) с правами `write:package` и `read:package`; им образ публикуется в реестр и скачиваются модели. Имена секретов не могут начинаться с `GITEA_` и `GITHUB_`, поэтому не `GITEA_TOKEN` |
| `REGISTRY_USER` | необязательно: владелец токена; по умолчанию — владелец репозитория (`denozord`) |
| `MODELS_URL` | необязательно: ссылка на `models-bundle.tar.gz`; нет — образ без моделей |
| `MODELS_TOKEN` | необязательно: токен с `read:package` для скачивания по `MODELS_URL` |
3. Реестр контейнеров Gitea доступен по HTTPS. Если Gitea по HTTP, добавьте её адрес в
`insecure-registries` Docker на раннере и на VPS (`/etc/docker/daemon.json`).
@@ -261,7 +260,7 @@ Workflow `.gitea/workflows/docker.yml` собирает образ и публи
| 401 | не передан токен или он отличается от `DUB_API_TOKEN` |
| Контейнер `unhealthy` в первые минуты | модель ещё грузится; `docker logs dub-ai`. Если не проходит — не хватает памяти (`docker stats`) |
| CI: `Cannot connect to the Docker daemon` | у раннера нет доступа к Docker (см. «Что настроить один раз») |
| CI: `unauthorized` при push | у `REGISTRY_TOKEN` нет `write:package` или `REGISTRY_USER` не владелец/участник пространства имён репозитория |
| CI: `unauthorized` при push | у `ACTION_PAT` нет `write:package` или токен принадлежит не владельцу/участник пространства имён репозитория |
| CI: образ без моделей, хотя ждали с ними | секрет `MODELS_URL` пуст или шаг скачивания пропущен — смотрите лог шага «Модели» |
## Что проверено, а что нет